cancel
Showing results for 
Search instead for 
Did you mean: 

Behaviour change with oracle Remote Tables in 16.0.0.2003

thomas_duemesnil
Participant
4,494

Since i upgrade my installation to 16.0.0.2003 I have a problem with my functions accessing proxy tables on a oracle server.

I could bring down the problem to the following lines

if exists ( select 1 from <PROXYTABLE> where <PROXYTABLE>.SATZART = 'F' ) then
    message 'Found'
else
    message 'Not found'
end IF


This has worked for years and now i get the following error back from oracle

SQLCODE = -660 SQLSTATE = WO005 ERRORMSG() = Server 'MYSERVER': [Sybase][SQL Anywhere - Oracle][Oracle]ORA-00923: Schlüsselwort FROM nicht an erwarteter Stelle gefunden

I have set the cis_option to 7 on my system and could see that the Query above is executed as follows

The query is being processed in FULL PASSTHRU mode
The Original Statement is 
    (select first 1 from <PROXYTABLE> where <PROXYTABLE>.SATZART = 'F')
The Virtual Statement is 
    select vt_1.expr_1 from vt_1

The Remote Statement for vt_1 is 
    (select first 1 from <PROXYTABLE> where <PROXYTABLE>.SATZART = 'F')

Execute (MYSERVER): 
     SELECT FIRST 1 FROM SA001.<PROXYTABLE> t1  WHERE t1."SATZART" = 'F'


When I execute the query from iSql i get SQLCODE=122, ODBC 3 State=01000 Not deterministic result set

When I add a order clause to the statement above

select FIRST 1 from <PROXYTABLE> where <PROXYTABLE>.SATZART = 'F' 
order by <PROXYTABLE>.REFNR


I can reproduce the error [Sybase][SQL Anywhere - Oracle][Oracle]ORA-00923: Schlüsselwort FROM nicht an erwarteter Stelle gefunden SQLCODE=-660, ODBC 3 State="HY000"

The same Query without the FIRST keyword works fine in my case.

select 1 from <PROXYTABLE> where <PROXYTABLE>.SATZART = 'F' 
order by <PROXYTABLE>.REFNR

:::SQL 
CREATE SERVER "MYSERVER" CLASS 'ORAODBC' USING 'FIBU';


FIBU is a SYSTEM DSN which uses the SQL Anywhere 16 - Oracle driver in Version 16.00.00.2003

Will this be fixed ? When ?

Accepted Solutions (0)

Answers (0)