Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DBD-Oracle CPAN distribution.

Report information
The Basics
Id: 8139
Status: resolved
Priority: 0/
Queue: DBD-Oracle

People
Owner: Nobody in particular
Requestors: axel.reinhold [...] le-gobw.de
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 1.16
Fixed in: (no value)



Subject: make test failed ORA-24328: illegal attribute value (DBD ERROR: OCIAttrSet OCI_ATTR_CHARSET_FORM)
Hi, installed DBD-Oracle on a clean RedHat 7.3 with new clean kernel 2.4.27 and perl 5.8.5 and Oracle 8.0.6.3.0 (need this combination for support of Oracle Developer 6i. test and even small oraperl scripts fail with ORA-24328. Research / README did not give any hints. Any idea? Attached make and make test protocol. Axel

Message body is not shown because it is too large.

I didn't have access to an Oracle 8 system when working on this release. Please set the DBI_TRACE env var to "9=/tmp/dbitrace.log" Then run "make test" - and let it run all the way. Then gzip -9 /tmp/dbitrace.log and email it to me. (Then unset the env var :)
Please try the attached patch. (Basically it just skips the OCIAttrSet OCI_ATTR_CHARSET_FORM if the csform is zero.)
Index: oci8.c =================================================================== --- oci8.c (revision 514) +++ oci8.c (working copy) @@ -1313,15 +1313,11 @@ } #ifdef OCI_ATTR_CHARSET_FORM - if ( (fbh->dbtype == 1) ) { /* && (fbh->csform == SQLCS_NCHAR) && CS_IS_UTF8(ncharsetid) ) { */ - /* ok... after doing what tim asked: setting SvUTF8 strictly based on csid 8bit Nchar test was broken - and this currently effectively just sets Attrs to the values in fhb ignoring ncharsetid altogether - probably wrong - */ - ub1 csform = fbh->csform; + if ( (fbh->dbtype == 1) && fbh->csform ) { + /* csform may be 0 when talking to Oracle 8.0 database */ if (DBIS->debug >= 3) - PerlIO_printf(DBILOGFP, " calling OCIAttrSet OCI_ATTR_CHARSET_FORM with csform=%d\n", csform ); - OCIAttrSet_log_stat( fbh->defnp, (ub4) OCI_HTYPE_DEFINE, (dvoid *) &csform, + PerlIO_printf(DBILOGFP, " calling OCIAttrSet OCI_ATTR_CHARSET_FORM with csform=%d\n", fbh->csform ); + OCIAttrSet_log_stat( fbh->defnp, (ub4) OCI_HTYPE_DEFINE, (dvoid *) &fbh->csform, (ub4) 0, (ub4) OCI_ATTR_CHARSET_FORM, imp_sth->errhp, status ); if (status != OCI_SUCCESS) { oci_error(h, imp_sth->errhp, status, "OCIAttrSet OCI_ATTR_CHARSET_FORM");
From: Tim.Bunce [...] pobox.com
I'd be grateful for a copy of a "make test" (including stdout & stderr). I can't make any promises. Oracle 8.0 is very old, used by few people, and I don't have a copy locally. Tim. [areinhol@le-gobw.de - Tue Nov 2 03:01:52 2004]: Show quoted text
> -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > comment-DBD-Oracle@rt.cpan.org (Tim_Bunce via RT) wrote at 31.10.04 > 17:44:
> > Full context and any attached attachments can be found at: > > <URL: http://rt.cpan.org/NoAuth/Bug.html?id=8139 > > > > > Please try the attached patch. > > > > (Basically it just skips the OCIAttrSet OCI_ATTR_CHARSET_FORM if the > > csform is zero.) > >
> > Tim, > > thank you very much for the patch. Much better now: > > Failed Test Stat Wstat Total Fail Failed List of Failed > - ----------------------------------------------------------------- > t/30long.t 255 65280 376 369 98.14% 190-376 > t/31lob.t 255 65280 2 4 200.00% 1-2 > t/50cursor.t 12 1 8.33% 12 > 8 tests and 122 subtests skipped. > Failed 3/18 test scripts, 83.33% okay. 190/582 subtests failed, 67.35% > okay. > > Still had to add "-lextp" to the library list. > Do you want another -9 debug? > > Axel > > -----BEGIN PGP SIGNATURE----- > Version: PGP 6.5.8 > > iQA/AwUBQYc+a5SBhQ1LWdiYEQJWUQCgub3sfeP5QG8SfCTYnXXa7cxD0wcAn321 > b6eSVn6DwAuxdtS6rZu9svhU > =dP8A > -----END PGP SIGNATURE-----
Realistically I don't have time to dig into this for the sake of supporting a very old Oracle release. I just don't have the time. Sorry. Your options are to: - upgrade to Oracle 8.1 or later - stick with an older release of DBD::Oracle - fix the problems yourself - get someone else to fix the problems for free - pay me to fix the problems Tim.
Show quoted text
> But in a later mail you wanted another "make test stderr/stdout" > with all the minor warnings which show up in it. We don't need > these fixed - they are all minor warnings. The basic thing is > running. BTW - Oracle 8.0.6 is the latest Oracle release which > supports Oracle Developer 6i - which is the latest release to > support character based forms - and has itself Oracle support > until End 2005.
Okay. Show quoted text
> Will this patch be included into future versions?
Yes. Tim.