If you look at how VARRAYs are created in Oracle they are Variable Array of a primitive type e.g. http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/varray/index.html
what happens when you declare your VARRAY to be String or Integer instead of Abstract ? Martin ______________________________________________ Verzicht und Vertraulichkeitanmerkung / Disclaimer and confidentiality note Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. This message is confidential and may be privileged. If you are not the intended recipient, we kindly ask you to please inform the sender. Any unauthorised dissemination or copying hereof is prohibited. This message serves for information purposes only and shall not have any legally binding effect. Given that e-mails can easily be subject to manipulation, we can not accept any liability for the content provided. > Date: Mon, 6 Apr 2009 13:22:58 +1200 > Subject: Re: DBD Oracle 1.20 ORA-24334 Error > From: [email protected] > To: [email protected] > CC: [email protected] > > Found the fix for the t/10gen.t exit code tests in the README.help.txt under > "repetitive connect/open/close/disconnect" tests > However still no luck with my initial test 'VARRAY of abstract data types', > it's still returning > > DBD::Oracle::db prepare failed: ORA-24334: no descriptor for this position > (DBD ERROR: OCIParamGet) > > Output of latest make test with t/10gen.t passing > > ux11:/home/bmpe/bmpadme/DBD-Oracle-1.21 > make test > PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/01base................ok > > t/10general.............ok > > t/12impdata.............ok > > t/14threads.............ok > > t/15nls.................ok > > t/20select..............ok > > t/21nchar............... Database and client versions and character sets: > Database 9.2.0.8.0 CHAR set is US7ASCII (Non-Unicode), NCHAR set is > AL16UTF16 (Unicode) > Client 10.2.0.4 NLS_LANG is '<unset>', NLS_NCHAR is '<unset>' > t/21nchar...............ok > > t/22nchar_al32utf8......ok > > t/22nchar_utf8..........ok > > t/23wide_db.............skipped > all skipped: Database character set is not Unicode > t/23wide_db_8bit........skipped > all skipped: Database character set is not Unicode > t/23wide_db_al32utf8....skipped > all skipped: Database character set is not Unicode > t/24implicit_utf8.......ok > > t/25plsql...............ok 42/82(DBI::errstr undefined) > > t/25plsql...............FAILED test 43 > > Failed 1/82 tests, 98.78% okay > t/26exe_array...........ok > > t/28array_bind..........ok > > t/30long................ok > > 122/470 skipped: various reasons > t/31lob.................ok > > t/32xmltype.............ok > > t/34pres_lobs...........ok > > t/40ph_type.............ok 3/19 Placeholder behaviour for ora_type=1 (the > default) varies with Oracle version. > Oracle 7 didn't strip trailing spaces, Oracle 8 did, until 9.2.x > Your system doesn't. If that seems odd, let us know. > t/40ph_type.............ok > > t/50cursor..............ok > > t/51scroll..............ok > > t/55nested..............ok > > t/56embbeded............ok > > t/60reauth..............ORACLE_USERID_2 not defined. Tests skipped. > skipped > all skipped: no reason given > t/70meta................ok > > t/80ora_charset.........NOK 9# Failed test (t/80ora_charset.t at line > 83) > # got: '?' > # expected: '°' > # Failed test (t/80ora_charset.t at line 84) > t/80ora_charset.........NOK 10# got: '?' > > # expected: '°' > t/80ora_charset.........ok 12/14# Failed test (t/80ora_charset.t at line > 83) > t/80ora_charset.........NOK 13# got: '?' > > # expected: '°' > # Failed test (t/80ora_charset.t at line 84) > # got: '?' > t/80ora_charset.........NOK 14# expected: '°' > > # Looks like you failed 4 tests of 14. > t/80ora_charset.........dubious > > Test returned status 4 (wstat 1024, 0x400) > DIED. FAILED tests 9-10, 13-14 > Failed 4/14 tests, 71.43% okay > Failed Test Stat Wstat Total Fail Failed List of Failed > ------------------------------------------------------------------------------- > t/25plsql.t 82 1 1.22% 43 > t/80ora_charset.t 4 1024 14 4 28.57% 9-10 13-14 > 4 tests and 122 subtests skipped. > Failed 2/28 test scripts, 92.86% okay. 5/2033 subtests failed, 99.75% okay. > make: *** [test_dynamic] Error 2 > > > On Mon, Apr 6, 2009 at 9:18 AM, Jamie Nicholson > <[email protected]>wrote: > > > I removed the line from dbdimp and no luck > > > > > dbdimp.c:3269: warning: unused variable `sv2 > > > > Also I investigated the funny return codes being returned in t/10gen.t. > > Firstly I wrote a seperate script and the results were as expected > > > > Then I found that if I put the test before this line it would also work - > > * > > line 20: my $dbh = DBI->connect($dsn, $dbuser, ''); > > * > > If I put the test after this line it wouldn't work and started returning > > unexpected results > > What would the DBI connect be doing that would upset the exit status, very > > strange. > > > > Then I tried rewritting the Line20 DBI connect to use the following format > > my $dbh = > > DBI->connect("dbi:Oracle:host=$oracleHost;sid=$oracleDbId",$oracleUser,$oraclePass, > > > > {RaiseError =>0 ,AutoCommit =>0}) > > > > And the test then worked successfully...... > > > > > > > > On Sun, Apr 5, 2009 at 10:48 AM, <[email protected]> wrote: > > > >> > Thanks John, if you need me to run any debugging on Solaris or anything > >> > let > >> > me know. > >> > I would suspect also that it is OS related. > >> > > >> > On the premise instant client and also tried to run perl Makefile.PL -V > >> > 9.2 > >> > & with -v 10.2.0.4 > >> > > >> > The only thing that is out of place is this compile a warning is thrown > >> > when > >> > the make command is run > >> > > >> > gcc -c -I/home/bmpe/bmpadme/instantclient_10_2/sdk/include > >> > -I/opt/perl586/lib/site_perl/5.8.6/sun4-solaris-thread-multi/auto/DBI > >> > -D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include > >> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.21\" > >> > -DXS_VERSION=\"1.21\" -fPIC > >> > "-I/opt/perl586/lib/5.8.6/sun4-solaris-thread-multi/CORE" -Wall > >> > -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT > >> -DORA_OCI_VERSION=\"10.2.0.4\" > >> > dbdimp.c > >> > dbdimp.c: In function `ora_st_execute_array': > >> > dbdimp.c:3269: warning: unused variable `sv2' > >> > > >> > Full output of the make, > >> > > >> Not sure if that would be the culperate. If I remember correctly I > >> removed it in 1.22 as it was a memory leak source. Try getting rid of it > >> and see what happens? > >> > >> > >> > ux11:/home/bmpe/bmpadme/DBD-Oracle-1.21 > make > >> > Skip blib/lib/DBD/Oracle.pm (unchanged) > >> > Skip blib/lib/DBD/mkta.pl (unchanged) > >> > Skip blib/lib/oraperl.ph (unchanged) > >> > Skip blib/arch/auto/DBD/Oracle/dbdimp.h (unchanged) > >> > Skip blib/arch/auto/DBD/Oracle/ocitrace.h (unchanged) > >> > Skip blib/lib/Oraperl.pm (unchanged) > >> > Skip blib/arch/auto/DBD/Oracle/Oracle.h (unchanged) > >> > cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm > >> > Skip blib/lib/DBD/Oracle/GetInfo.pm (unchanged) > >> > gcc -c -I/home/bmpe/bmpadme/instantclient_10_2/sdk/include > >> > -I/opt/perl586/lib/site_perl/5.8.6/sun4-solaris-thread-multi/auto/DBI > >> > -D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include > >> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.21\" > >> > -DXS_VERSION=\"1.21\" -fPIC > >> > "-I/opt/perl586/lib/5.8.6/sun4-solaris-thread-multi/CORE" -Wall > >> > -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT > >> -DORA_OCI_VERSION=\"10.2.0.4\" > >> > DBD_ORA_OBJ.c > >> > gcc -c -I/home/bmpe/bmpadme/instantclient_10_2/sdk/include > >> > -I/opt/perl586/lib/site_perl/5.8.6/sun4-solaris-thread-multi/auto/DBI > >> > -D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include > >> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.21\" > >> > -DXS_VERSION=\"1.21\" -fPIC > >> > "-I/opt/perl586/lib/5.8.6/sun4-solaris-thread-multi/CORE" -Wall > >> > -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT > >> -DORA_OCI_VERSION=\"10.2.0.4\" > >> > Oracle.c > >> > *gcc -c -I/home/bmpe/bmpadme/instantclient_10_2/sdk/include > >> > -I/opt/perl586/lib/site_perl/5.8.6/sun4-solaris-thread-multi/auto/DBI > >> > -D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include > >> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.21\" > >> > -DXS_VERSION=\"1.21\" -fPIC > >> > "-I/opt/perl586/lib/5.8.6/sun4-solaris-thread-multi/CORE" -Wall > >> > -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT > >> -DORA_OCI_VERSION=\"10.2.0.4\" > >> > dbdimp.c > >> > dbdimp.c: In function `ora_st_execute_array': > >> > dbdimp.c:3269: warning: unused variable `sv2'* > >> > gcc -c -I/home/bmpe/bmpadme/instantclient_10_2/sdk/include > >> > -I/opt/perl586/lib/site_perl/5.8.6/sun4-solaris-thread-multi/auto/DBI > >> > -D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include > >> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.21\" > >> > -DXS_VERSION=\"1.21\" -fPIC > >> > "-I/opt/perl586/lib/5.8.6/sun4-solaris-thread-multi/CORE" -Wall > >> > -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT > >> -DORA_OCI_VERSION=\"10.2.0.4\" > >> > oci8.c > >> > Running Mkbootstrap for DBD::Oracle () > >> > chmod 644 Oracle.bs > >> > rm -f blib/arch/auto/DBD/Oracle/Oracle.so > >> > LD_RUN_PATH="/home/bmpe/bmpadme/instantclient_10_2" gcc -G > >> > -L/usr/local/lib > >> > DBD_ORA_OBJ.o Oracle.o dbdimp.o oci8.o -o > >> > blib/arch/auto/DBD/Oracle/Oracle.so > >> > -L/home/bmpe/bmpadme/instantclient_10_2 -lclntsh > >> > chmod 755 blib/arch/auto/DBD/Oracle/Oracle.so > >> > cp Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs > >> > chmod 644 blib/arch/auto/DBD/Oracle/Oracle.bs > >> > cp ora_explain blib/script/ora_explain > >> > /usr/local/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" > >> > blib/script/ora_explain > >> > Manifying blib/man1/ora_explain.1 > >> > Manifying blib/man3/DBD::Oracle.3 > >> > Manifying blib/man3/DBD::Oraperl.3 > >> > > >> > > >> > On Sun, Apr 5, 2009 at 8:05 AM, <[email protected]> wrote: > >> > > >> >> I tested it and I got the correct values back > >> >> Looking at the error you are now getting in 10gen that is an OS related > >> >> error This is the basic check that we can fork subprocesses and wait > >> for > >> >> the status after having connected to Oracle > >> >> > >> >> It is only suppose to run on solaris if the oci is gt 9. > >> >> > >> >> In your case this is true but your DB is 9.2 which leads me to thing > >> it > >> >> is the combination of 9.2 db and solaris that is the root cause. > >> >> > >> >> You might not have a work around for this. I am able to get this to > >> >> work > >> >> on windos and linux without any problem > >> >> > >> >> I will look a little further though. > >> >> > >> >> Cheers > >> >> John Scoles > >> >> > >> >> > >> >> > Have been trying to get a good install all day for DBD 1.21 / DBD1.22 > >> >> on > >> >> > Solaris 5.8, it installs now. > >> >> > However it still fails on the TEST_ORA table. > >> >> > > >> >> > As I said I tried it on my Windows box using Activestate/ppm which > >> >> queried > >> >> > the TEST_ORA table successfully > >> >> > > >> >> > The latest Solaris build I used was as follows > >> >> > > >> >> > instantclient-*10.2.0.4.0* 32bit* - this seems to be the version of > >> >> > instant > >> >> > client that works* > >> >> > perl, v5.8.6 built for sun4-solaris-thread-multi > >> >> > SunOS 5.8 > >> >> > Oracle 9.2.0.8.0 > >> >> > DBD 1.21 > >> >> > > >> >> > After running a sucessful perl Makefile.PL, make, then make test I > >> >> read > >> >> > the > >> >> > following post by John > >> >> > > >> >> > http://www.nntp.perl.org/group/perl.dbi.users/2008/06/msg32950.html > >> >> > > >> >> > I then ran the make install and re-tried my sample test but still the > >> >> > issue > >> >> > occurs, otherwsise standard SQL works fine. > >> >> > > >> >> > DBD::Oracle::db prepare failed: ORA-24334: no descriptor for this > >> >> position > >> >> > (DBD ERROR: OCIParamGet) [for Statement "select * from TEST_ORA"] at > >> >> > ./popAMAError.pl line 34. > >> >> > > >> >> > The output from Make test > >> >> > > >> >> > > >> >> > PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" > >> >> > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > >> >> > t/01base................ok > >> >> > > >> >> > t/10general.............# Failed test (t/10general.t at line 36) > >> >> > t/10general.............NOK 1# got: '-1' > >> >> > > >> >> > # expected: '256' > >> >> > # Failed test (t/10general.t at line 37) > >> >> > # got: '-1' > >> >> > # expected: '0' > >> >> > t/10general.............ok 33/33# Looks like you failed 2 tests of > >> 33. > >> >> > > >> >> > t/10general.............dubious > >> >> > > >> >> > Test returned status 2 (wstat 512, 0x200) > >> >> > DIED. FAILED tests 1-2 > >> >> > Failed 2/33 tests, 93.94% okay > >> >> > t/12impdata.............ok > >> >> > > >> >> > t/14threads.............ok > >> >> > > >> >> > t/15nls.................ok > >> >> > > >> >> > t/20select..............ok > >> >> > > >> >> > t/21nchar............... Database and client versions and character > >> >> sets: > >> >> > Database 9.2.0.8.0 CHAR set is US7ASCII (Non-Unicode), NCHAR set is > >> >> > AL16UTF16 (Unicode) > >> >> > Client 10.2.0.4 NLS_LANG is '<unset>', NLS_NCHAR is '<unset>' > >> >> > t/21nchar...............ok > >> >> > > >> >> > t/22nchar_al32utf8......ok > >> >> > > >> >> > t/22nchar_utf8..........ok > >> >> > > >> >> > t/23wide_db.............skipped > >> >> > all skipped: Database character set is not Unicode > >> >> > t/23wide_db_8bit........skipped > >> >> > all skipped: Database character set is not Unicode > >> >> > t/23wide_db_al32utf8....skipped > >> >> > all skipped: Database character set is not Unicode > >> >> > t/24implicit_utf8.......ok > >> >> > > >> >> > t/25plsql...............ok 42/82(DBI::errstr undefined) > >> >> > > >> >> > t/25plsql...............FAILED test 43 > >> >> > > >> >> > Failed 1/82 tests, 98.78% okay > >> >> > t/26exe_array...........ok > >> >> > > >> >> > t/28array_bind..........ok > >> >> > > >> >> > t/30long................ok > >> >> > > >> >> > 122/470 skipped: various reasons > >> >> > t/31lob.................ok > >> >> > > >> >> > t/32xmltype.............ok > >> >> > > >> >> > t/34pres_lobs...........ok > >> >> > > >> >> > t/40ph_type.............ok 3/19 Placeholder behaviour for ora_type=1 > >> >> (the > >> >> > default) varies with Oracle version. > >> >> > Oracle 7 didn't strip trailing spaces, Oracle 8 did, until 9.2.x > >> >> > Your system doesn't. If that seems odd, let us know. > >> >> > t/40ph_type.............ok > >> >> > > >> >> > t/50cursor..............ok > >> >> > > >> >> > t/51scroll..............ok > >> >> > > >> >> > t/55nested..............ok > >> >> > > >> >> > t/56embbeded............ok > >> >> > > >> >> > t/60reauth..............ORACLE_USERID_2 not defined. Tests skipped. > >> >> > skipped > >> >> > all skipped: no reason given > >> >> > t/70meta................ok > >> >> > > >> >> > t/80ora_charset.........ok 8/14# Failed test (t/80ora_charset.t > >> at > >> >> > line > >> >> > 83) > >> >> > # got: '?' > >> >> > # expected: '°' > >> >> > t/80ora_charset.........NOK 9# Failed test (t/80ora_charset.t at > >> >> line > >> >> > 84) > >> >> > # got: '?' > >> >> > # expected: '°' > >> >> > t/80ora_charset.........ok 12/14# Failed test (t/80ora_charset.t > >> >> at > >> >> > line > >> >> > 83) > >> >> > # got: '?' > >> >> > # expected: '°' > >> >> > t/80ora_charset.........NOK 13# Failed test (t/80ora_charset.t at > >> >> line > >> >> > 84) > >> >> > t/80ora_charset.........NOK 14# got: '?' > >> >> > > >> >> > # expected: '°' > >> >> > # Looks like you failed 4 tests of 14. > >> >> > t/80ora_charset.........dubious > >> >> > > >> >> > Test returned status 4 (wstat 1024, 0x400) > >> >> > DIED. FAILED tests 9-10, 13-14 > >> >> > Failed 4/14 tests, 71.43% okay > >> >> > Failed Test Stat Wstat Total Fail Failed List of Failed > >> >> > > >> >> > >> ------------------------------------------------------------------------------- > >> >> > t/10general.t 2 512 33 2 6.06% 1-2 > >> >> > t/25plsql.t 82 1 1.22% 43 > >> >> > t/80ora_charset.t 4 1024 14 4 28.57% 9-10 13-14 > >> >> > 4 tests and 122 subtests skipped. > >> >> > Failed 3/28 test scripts, 89.29% okay. 7/2033 subtests failed, 99.66% > >> >> > okay. > >> >> > make: *** [test_dynamic] Error 2 > >> >> > > >> >> > > >> >> > On Fri, Apr 3, 2009 at 11:46 AM, Jamie Nicholson > >> >> > <[email protected]>wrote: > >> >> > > >> >> >> Tried this using Oracle 1.21 on my Windoze PC and it works. > >> >> >> Looks like I'm off to upgrade the Oracle Client as per option 2 in > >> >> this > >> >> >> archive > >> >> >> > >> >> >> http://www.nntp.perl.org/group/perl.dbi.users/2008/04/msg32777.html > >> >> >> > >> >> > > >> >> > >> >> > >> > > >> > >> _________________________________________________________________ Rediscover Hotmail®: Get quick friend updates right in your inbox. http://windowslive.com/RediscoverHotmail?ocid=TXT_TAGLM_WL_HM_Rediscover_Updates1_042009
