Ron:

I could use the "column_value from table()" approach, but want to manipulate the 
vector as a whole for speed... like a BLOB.  Same with updating.  I read your earlier 
post, but want to avoid specifying each element in a comma-separated list.

Thank you for your response, however, I think I need to keep digging.


-----Original Message-----
From: Reidy, Ron [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 22, 2004 12:12 PM
To: Bruce Hartleben; [EMAIL PROTECTED]
Subject: RE: Select/update array() of number


Bruce,

My error stack begins with:

Field 1 has an Oracle type (108) which is not explicitly supported


You will need to use strings delimited with ',' to move your data around.  You should 
look into table functions also.

See my earlier posts.

--
Ron Reidy
Sr. DBA
Array PioPharma, Inc.




-----Original Message-----
From:   Bruce Hartleben [mailto:[EMAIL PROTECTED]
Sent:   Tue 6/22/2004 9:38 AM
To:     [EMAIL PROTECTED]
Cc:     
Subject:        Select/update array() of number
Goal: 
Array operations (equivalent to shift, memcpy or push/pop) are quite CPU-intensive on 
the server-side, so I'm trying to load arrays client-side and take advantage of perl's 
speed.  I get errors when I try to read an "array() of number" into perl.

Versions:
Perl v5.8.0 built for sun4-solaris
DBI v1.3
DBD:Oracle v1.15
Oracle 9i

SQL:
create type a_number1k as array(1000) of number;
create table tmp_arrays ( iv a_number1k );

Perl:
...
$dbh = DBI->connect( $dbname, $login, $password ) or die "ERROR: Cannot connect to 
Oracle in db_connect()";
$sth = $dbh->prepare( "select iv from tmp_arrays" );
...

Output:
DBD::Oracle::db prepare failed: ERROR OCIDefineObject call needed but not implemented 
yet [for statement ``select iv from tmp_arrays''])

Question:
How can I load an array into perl then write it back to Oracle?  I'm dealing with 200 
million arrays.  Is there a way to keep it in binary form, e.g., cast it to/from a 
BLOB?

Thank you for your help!

Bruce Hartleben





This electronic message transmission is a PRIVATE communication which contains
information which may be confidential or privileged. The information is intended 
to be for the use of the individual or entity named above. If you are not the 
intended recipient, please be aware that any disclosure, copying, distribution 
or use of the contents of this information is prohibited. Please notify the
sender  of the delivery error by replying to this message, or notify us by
telephone (877-633-2436, ext. 0), and then delete it from your system.



Reply via email to