Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Re:RE: Proc*C Errors

RE: Re:RE: Proc*C Errors

From: Stephane Faroult <>
Date: Thu, 20 Mar 2003 10:19:42 -0500
Message-Id: <>

>Oh Stephane, your such a woos. I absolutely hate
>the OCI interface, talk about
>a place to blow your head off! 99.99999% of the
>time that the C compiler tosses
>a fur ball is something you've done in C that is
>wrong, although I'll admit is
>sometimes gets real hairy trying to find it. If
>the Proc precompiler yaks the
>fur ball your use of EXEC SQL is wrong and you can
>search the .lis file looking
>for the error which start either with 'ORA-' or
>'PCC-'. Actually 60% of you
>errors in C will get caught by the precompiler,
>such as missing semi-colons and
>quote marks and commas. Even unbalanced braces get
>caught before you get to C.
>BTW: since we don't have the OS your using, on M$
>the GUI will display the exact
>point where the precompiler is yacking in a pop-up
>when asked.
> But if you MUST use the OCI interface, please
>do. I have a bunch of folks
>here who swear by it, that is until they have to
>upgrade to a newer version of
>Oracle. Then they swear at it since it will take
>them a couple of weeks to edit
>out all of the no longer supported calls. While at
>the same time I'm up and
>running once again in a few hours. I've got two
>"playtime" programs that I
>originally wrote on Oracle 5. The Pro*C one has
>not changed a single byte &
>still runs very nicely on 9i after a precompile &
>compile. The OCI one has
>changed every time I've upgraded and this last
>upgrade took me a whole day to
>find all of the dead calls. UGLY!
>Dick Goulet

:-). I must admit that I loved the Oracle7 OCIs (fortunately still available in the libraries) much more than the so called 'Oracle8' ones ... Functions which only take void * (or sometimes void **) pointers are not exactly a pleasure to work with, and I have a special vivid remembrance of the direct load interface where the data type is coded on 2 bytes in one function and 4 in another (passed as void *, of course, to be certain that the compiler sees nothing ... kind of stealth technology ...). Took 2 days to understand the core dump ... That said, for the weird stuff I affectionate (wildly multithreaded fully dynamic things where I need to keep close control on memory) OCIs are hard to beat, once of course you have set-up your own, clean, building blocks.   And concerning portability, my experience is a bit different. I have precisely initially switched to the OCIs (never practiced HLI, this still were my Pro*C days) out of frustration with the makefiles at some change of pcc release. Desupported functions survive longer than documented. Received on Thu Mar 20 2003 - 09:19:42 CST

Original text of this message