Thank you for the patch. This fixed the ORA-24334 problem. The test suite now runs to completion. FYI it still complains about one subtest in 58object.t.
Results from 'make test': [snip] t/56embbeded.t .......... ok t/58object.t ............ 6/51 t/58object.t ............ Dubious, test returned 1 (wstat 256, 0x100) Failed 1/51 subtests t/60reauth.t ............ skipped: ORACLE_USERID_2 not defined. t/70meta.t .............. ok t/80ora_charset.t ....... ok Test Summary Report ------------------- t/58object.t (Wstat: 256 Tests: 51 Failed: 1) Failed test: 27 Non-zero exit status: 1 Files=30, Tests=2206, 69 wallclock secs ( 0.65 usr 0.67 sys + 11.16 cusr 2.76 csys = 15.24 CPU) Result: FAIL Failed 1/30 test programs. 1/2206 subtests failed. > perl -Mblib t/58object.t 1..51 ok 1 - use DBI; ok 2 - ora_objects flag is set to 1 ok 3 - ora_objects flag is set to 0 ok 4 - The object isa DBI::db ok 5 - Fetch current schema name ok 6 - old: Prepare select ok 7 - old: Execute select ok 8 - old: Fetch first row ok 9 - old: Row 1 column 2 is an ARRAY ok 10 - old: Row 1 column 2 is has 2 elements ok 11 - old: Fetch second row ok 12 - old: Row 2 column 2 is an ARRAY ok 13 - old: Row 2 column 2 is has 2 elements ok 14 - old: Fetch third row ok 15 - old: Row 3 column 2 is an ARRAY ok 16 - old: Row 3 column 2 is has 2 elements ok 17 - old: No more rows expected ok 18 - new: Prepare select ok 19 - new: Execute select ok 20 - new: Fetch first row ok 21 - new: Row 1 column 2 is an DBD:Oracle::Object ok 22 - new: Row 1 column 2 object type ok 23 - new: Row 1 column 2 object attributes ok 24 - new: Fetch second row ok 25 - new: Row 2 column 2 is an DBD::Oracle::Object ok 26 - new: Row 2 column 2 object type not ok 27 - new: Row 1 column 2 object attributes ok 28 - new: Fetch third row ok 29 - new: Row 3 column 2 is an DBD::Oracle::Object ok 30 - new: Row 3 column 2 object type ok 31 - new: Row 1 column 2 object attributes ok 32 - new: No more rows expected ok 33 - DBD::Oracle::Object->attr_hash ok 34 - DBD::Oracle::Object->attr ok 35 - DBD::Oracle::Object->attr("NAME") ok 36 - new: Prepare select with nested table of objects ok 37 - new: Execute (nested table) ok 38 - new: Fetch first row (nested table) ok 39 - Check propertes of first (and only) item in nested table ok 40 - new: No more rows expected (nested table) ok 41 - new: Prepare select with nested object ok 42 - new: Execute (nested object) ok 43 - new: Fetch first row (nested object) ok 44 - Check obj.num ok 45 - Check obj.obj ok 46 - new: Fetch second row (nested object) ok 47 - Check obj.num ok 48 - Check obj.obj ok 49 - new: Fetch third row (nested object) ok 50 - Check obj ok 51 - new: No more rows expected (nested object) results from DBI trace level 5: 100922120 (field=1): DBD::Oracle::Object=HASH(0x1009bb860) <- fetchrow= ( "2" DBD::Oracle::Object=HASH(0x1009bb860) ) [2 items] row2 at t/58object.t line 156 -> fetchrow for DBD::Oracle::st (DBI::st=HASH(0x1009220c0)~0x1009222a0) fetch_cleanup_oci_object dbd_st_fetch 2 fields... dbd_st_fetched 2 fields with status of 0(SUCCESS) field #1 with rc=0(OK) 100922120 (field=0): "3" field #2 with rc=0(OK) getting an embedded object named TIM.DBD_TEST__TYPE_A with typecode=OBJECT getting attributes of object named TIM.DBD_TEST__TYPE_A with typecode=OBJECT getting attributes of object subtype TIM.DBD_TEST__TYPE_B getting value of object attribute named NUM with typecode=INT getting value of object attribute named NAME with typecode=VARCHAR2 getting value of object attribute named AMOUNT with typecode=DECIMAL 100922120 (field=1): DBD::Oracle::Object=HASH(0x1009c3c20) Thank you, Tim Everett -----Original Message----- From: Charles Jardine [mailto:c...@cam.ac.uk] Sent: Monday, April 19, 2010 10:41 AM To: dbi-users@perl.org Cc: Everett, Timothy S Subject: Re: DBD-Oracle 1.24a reports ORA-24334 in t/58object.t On 16/04/10 17:29, Everett, Timothy S wrote: > This issue was previously reported by other people in thread > "DBD-Oracle > 1.23 reports ORA-24334 in t/58object.t" but I could not find any > answers. > > I'm trying to install DBD-Oracle 1.24a with this environment: > - perl 5.8.7 built for sun4-solaris-64 > - gcc 4.0.2 > - Solaris 10 update 6 > - Oracle 10.2.0.4 > > The build succeeds, but an ORA-24334 error is reported in the test > script t/58object.t: This problem does not occur on my platform - perl 5.10.1 64-bit - gcc 4.1.2 - SLES 10 SP 3 x86-64 - Oracle 10.2.0.4 I think your big-endian hardware has discovered a bug which my little-endian hardware conceals. [snip] > Rows per Fetch=60, Multiple Row Fetch=Off Field #2 is a object or > colection of some sort. Using OCIDefineObject and or OCIObjectPin At > level=0 in description an embedded object > OCIErrorGet after OCIParamGet (er1:ok): -1, 24334: ORA-24334: > no descriptor for this position > > level=0 type_name = TIM.DBD_TEST__TYPE_A > type_namel = 0 > parmdp = 1008216f8 > parmap = 0 > tdo = 10093abf0 > typecode = OBJECT > col_typecode = 0 > element_typecode = (UNKNOWN OCI TYPECODE 0) > obj_ref = 100944e00 > obj_value = 0 > obj_type = 10093abf0 > is_final_type = 0 > field_count = 131072 > fields = 10094d960 The field_count above should be 2. It is 2 * 2^16. Could you please try the attached patch. I think it will fix the problem, but I don't have any SPARC hardware to test it on. -- Charles Jardine - Computing Service, University of Cambridge c...@cam.ac.uk Tel: +44 1223 334506, Fax: +44 1223 334679