Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> Re: Pro*C, Dynamic SQL Method 4 and Host Arrays
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
![]() |
![]() |