PRO*C in 8.1.5 seems to have a bug handling large arrays

From: Paul G. Young <pgy_at_magma.ca>
Date: 2000/01/29
Message-ID: <YKEk4.780$zr1.1816143_at_news.magma.ca>#1/1


I have some simple Pro*C code that hasn't changed much in 5 years and now produces errors and problems. There seems to be a memory leak.

I thought about including code, but it's impractical since you'd need my tables, makefile, environment and data. So here's the scoop...

The code contains only two queries. Both use arrays to fetch their data. The first (a) has one bind variable as input the second (b) uses dynamic SQL method 3 to populate it's arrays. The queries can be processed in either order. When I run a, then b, I get "ORA-932 inconsistent datatypes". Run the other way, it's fine. There is no difference in the precompiled code. If I run a, close and re-open then b all is fine.

Furthermore (and this is very suspicious indeed) the query works fine either way if there are fewer than 128 rows to return (my arrays are defined to be 2500). When 300 rows are to be returned the error message indicates that the 129th row had produced the inconsistent data. Running the query in trusty SQL*Plus there is no problematic data.

The code worked fine with older versions. I've upgraded from Oracle 7.1.6 to 7.3.3 to 8.0.4 to 8.1.5. At the same time I've moved from HP UX 10.20 to HP UX 11.0 (32 bit version). I'm using HP's stock compiler and Oracle's makefile.

I've used ProC under Unix for 10 years and this is the first time it looks like a bonafide bug. It's very frustrating. Any ideas, suggestions or similar experiences?

Does Oracle post it's reported errors and fixes?

--
PGY (Paul G. Young)
http://www.magma.ca/~pgy
Received on Sat Jan 29 2000 - 00:00:00 CET

Original text of this message