[Zope-DB] DCOracle2 OracleDate and parameter sequence problem
Matthew T. Kromer
matt@zope.com
Wed, 10 Oct 2001 10:19:06 -0400
Christopher Jenkins wrote:
>
>Thanks for looking at this.
>
>Yes, I have the latest updates. I ran your test program with the
>following results:-
>
>Traceback (most recent call last):
> File "stest.py", line 21, in ?
> c.executemany(stmt, l2)
> File
>"/home/cjenkin1/oracle/Products/DCOracle2/DCOracle2/DCOracle2.py",
>line 921, in executemany
> result = self._cursor.execute(batchend-batchstart)
>dco2.DatabaseError: (1480, 'ORA-01480: trailing null missing from STR
>bind
>value')
>
>Examination of the table stest shows that it has four rows and
>S is null in all rows.
>
>I am using Oracle 9.0.1 and I assume you are using 8.1. Perhaps
>there is some incompatibility between the different versions of
>the client libraries or there may be a bug in the version that
>I am using - it would be useful to get results from a variety
>of environments.
>
>I am unsure as to what further tests I should run to try to
>pinpoint the cause of the problem - I would welcome any
>suggestions you might have.
>
>I realise that unless the problem can be reproduced in another
>environment, it will be difficult to track down the exact
>cause.
>
>Since the problem has an obvious work around (multiple
>calls to execute()), it may not be worth spending a lot
>of time on unless there are more reports of the same fault.
>
>Thanks for all your help up to now - it is very much appreciated.
>
>Chris
>
OK, one last suggestion. (well, maybe 2). First is be sure to compile
the dco2.so file yourself rather than taking a prebuild binary (although
try the prebuilt binary if you havent). Second, inside DCOracle2.py,
there is a big warning area about a setStatic call -- try commenting
that line out; this will use dynamic binds rather than static binds and
might make a difference.
Also, if you export DCO2TRACEDUMP=dco2.tracedump, you can send me the
dco2.tracedump file when it happens again and I can look at the data in
the trace. The trailing NULL missing data is what I want to see, and
the traceback should show me the length of the strings reported.