Pro*C precompiler and the 9i MERGE statement
Date: Thu, 11 Jul 2002 12:35:19 +0100
Message-ID: <ngpqiuchugd2ga4fb5uviie7is575erdb8_at_4ax.com>
Client Versions 9.0.1.1.0 (Solaris) and 9.2.0.1.0 (Windows 2000). Server 9.0.1.1.1 (Windows 2000).
I'm updating an internal Pro*C application for which the useful new MERGE statement would be perfect. However the Pro*C preprocessor fails with an error on the MERGE statement. The statement itself is valid - it works as expected when executed through a client.
The error is:
"
Pro*C/C++: Release 9.0.1.1.0 - Production on Thu Jul 11 11:48:47 2002
(c) Copyright 2001 Oracle Corporation. All rights reserved.
System default option values taken from: /opt/oracle/9.0.1.C/precomp/admin/pcscfg.cfg
Syntax error at line 69, column 1, file insertTask.pc:
Error at line 69, column 1 in file insertTask.pc
MERGE INTO TASK t
1
PCC-S-02201, Encountered the symbol "MERGE" when expecting one of the
following:
for, register, at, close, commit, connect, declare, describe,
execute, fetch, open, prepare, rollback, select, whenever, alter, audit, comment, create, delete, drop, get, grant, insert, lock, noaudit, rename, revoke, set, update, validate,arraylen, allocate, cache, call, collection, context, deallocate, enable, free, lob, object, savepoint, analyze, explain, truncate,
The symbol "alter," was substituted for "MERGE" to continue.
Error at line 0, column 0 in file insertTask.pc
PCC-F-02102, Fatal error while doing C preprocessing
make: *** [obj/insertTask.c] Error 1
"
This seems to indicate that Pro*C has not been updated to include the new MERGE statement - it's not in the list of tokens the precompiler was expecting.
It's also not listed as an embedded SQL statement in the Pro*C documentation:
http://otn.oracle.com/docs/products/oracle9i/doc_library/901_doc/appdev.901/a89861/pc_02prc.htm#972 http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/appdev.920/a97269/pc_02prc.htm#972
And it's not been added in Release 2 either.
Other than wrapping the MERGE into a stored procedure and calling that from Pro*C, is there any way I can use MERGE from Pro*C?
Thanks,
-- Andy Hassall (andy_at_andyh.org) icq(5747695) http://www.andyh.org http://www.andyhsoftware.co.uk/space | disk usage analysis toolReceived on Thu Jul 11 2002 - 13:35:19 CEST