The way you're suggesting works, however that solution is a bit messy for the requirements. I'd like to try and get the implementation going correctly on Solaris for this feature, it works fine on other Windows/Linux.
On Mon, Apr 6, 2009 at 1:55 PM, Martin Gainty <mgai...@hotmail.com> wrote: > 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: jamie.nichol...@gmail.com > > To: sco...@pythian.com > > CC: dbi-users@perl.org > > > > > 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 > > <jamie.nichol...@gmail.com>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, <sco...@pythian.com> 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, <sco...@pythian.com> 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 > > >> >> > <jamie.nichol...@gmail.com>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 > > >> >> >> > > >> >> > > > >> >> > > >> >> > > >> > > > >> > > >> >