torwin
17th November 2003, 13:31
Hello,

I was wondering if anyone else had hit this issue....

When we use the Oracle8 driver on Oracle 9i, it adds the "WAIT 999" statement to some generated SQL. For example :

SQL> SELECT /*+ index(a tcspss957731$idx1) */ t$reqi,t$reqd,t$prog,t$obs,t$wbs,t$ccn,t$act,t$stat,t$stdt,t$user,t$repg,t$Refcntd,t$Refcntu FROM baan.tcspss95773
1 a WHERE t$reqi= :1 AND t$reqd= :2 AND t$prog= :3 FOR UPDATE WAIT 999

This is no problem when running on Oracle9i which support this syntax, however some of our Oracle9i baan tables are VIEWS to other tables in Oracle 8 databases. When SQL including these 'WAIT 999' statements are run against these tables we get errors due to this syntax not being supported on Oracle8.

If we switch to the Oracle 7 driver we do not get this error. I believe that we can configure the tabledef6.1 file to use a specific driver against a named table but this would involve, in my opinion, unnecessary additional configuration/administration.

Anyone run into this ?

dave_23
17th November 2003, 13:53
you should see that the 999 correlates to the first 999 in your ora_timeout parameter of the db_resource.

in your tabledef you might be able to set
ORA_TIMEOUT={0,.. .. ... ..}
for your view tables.

Dave

Dikkie Dik
17th November 2003, 15:45
Hope you only have this setting in a test environment. This as you probably know that setting different parameters in the tabledef file results is starting multiple database drivers with can lead to unexpected results when getting an error or doing a rollback on both drivers.

I advise to put these real tables in Oracle 9 and put the views in the Oracle 8 database. This helps to keep 1 driver and let Oracle do the checking on database consistenty.

Dick