Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Re: Pro*C, Dynamic SQL Method 4 and Host Arrays

Re: Pro*C, Dynamic SQL Method 4 and Host Arrays

From: David Fitzjarrell <oratune_at_aol.com>
Date: Tue, 30 Jan 2001 21:27:58 GMT
Message-ID: <957bkg$qju$1@nnrp1.deja.com>

In our last gripping episode Jeff Kish <jeff.kish_at_ait-mmii.com> wrote:
> I believe that the OCI is a layer underneath the Pro*C compiler.
> Jeff
>
> On Fri, 22 Dec 2000 17:38:49 GMT, Mike Krolewski <mkrolewski_at_rii.com>
> wrote:
>
> >In article <91vno7$7p9$1_at_nnrp1.deja.com>,
> > Mike Krolewski <mkrolewski_at_rii.com> wrote:
> >> In article <B6682737.4C17%jbotwick_at_nc.rr.com>,
> >> Jason Botwick <jbotwick_at_nc.rr.com> wrote:
> >> > I have an application written in Pro*C that uses Dynamic SQL
 Method
 4
 with
> >> > host arrays. Under Oracle 7.3.x, it worked. But under Oracle
 8.x, it
 doesn't
> >> > work. When a statement using host arrays, built using Method 4 is
 run, it
> >> > bombs out with ORA-01084, which is "invalid argument in OCI
 call".
 This
> >> > error didn't even exist in Oracle 7.x.
> >> >
> >> > So my question is, has anyone run into this problem? If so, what
 did
 you do
> >> > about it? I'm having a hard time debugging this, because no
 Oracle
 docs I
> >> > can find are very specific about how to use host arrays with
 Method
 4. So
> >> > I'm stumped about how to figure out what the valid values are for
 all
 these
> >> > OCI calls, if I can even figure out which one is bombing out.
> >> >
> >> > The sample programs with our release or Oracle work, but again,
 they
 don't
> >> > use host arrays and M4.
> >> >
> >> > Does anyone know where I can get a relatively simple example in
 Pro*C
 that
> >> > does use both, compile and runs?
> >> >
> >> >
> >>
> >> This error is somewhat perplexing. ProC does not use the OCI
 library
> >> and therefore should not have this error.
> >>
> >> You might want to use your debugger to locate the specific line
 that
> >> the error is occuring on ie which specific SQL statement that is
 having
> >> the error.
> >>
> >> If the sample code is working, things are most likely set up
 correctly.
> >> I am assuming that you have an array of indicator variables for
 each
> >> row of the host array.
> >>
> >> It is possible that you currently have a variable that is
 incorrectly
> >> typed. Oracle 7.3.4 seems to be less sensitive to this error.
> >>
> >> If you post the code, people may be able to assist more.
> >>
> >> Also check your error message. ORA-1084 is unlikely to be an OCI
 error.
> >> I do not have my manuals or CD in front of me but 1043 is no
 records
> >> found. I would suspect that 1084 has something to do with a field
> >> within a fetch.
> >>
> >> --
> >> Michael Krolewski
> >> Rosetta Inpharmatics
> >> mkrolewski_at_rii.com
> >> Usual disclaimers
> >>
> >> Sent via Deja.com
> >> http://www.deja.com/
> >>
> >
> >I checked the error messages -- yes 1084 is a bad OCI call. Strange
> >message given the example.
>
>

Actually, you're incorrect. SQLLIB.DLL in NT/2000, or libsql.a in UNIX, is the underlying layer to Pro*C/C++. True this library is configured for OCI calls from Pro*C but OCI it is not. I would imagine that SQLLIB is written in OCI; possibly one of the subsequent calls from SQLLIB is suspect. It is documented that SQLLIB will change and its use outside of Pro*C is not recommended. Possibly the newer version of SQLLIB has changed an OCI call or two and you've run into one of them.

--
David Fitzjarrell
Oracle Certified DBA


Sent via Deja.com
http://www.deja.com/
Received on Tue Jan 30 2001 - 15:27:58 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US