Hey folks. I'm at the depilatory stage on this one. I have two stored procedures, the first of which is (sort of) getting executed correctly, and the second of which is dying with a so-far-mystifying error message. DBD::Oracle 1.0.6 Oracle Server version 8.1.6.3.0 DESCRIBE on the two procedures gets me: PROCEDURE new_item Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- TN VARCHAR2(128) IN TTL VARCHAR2(255) IN KW VARCHAR2(255) IN NEWID NUMBER(38) OUT Which I call (mostly successfully) with my $sth = $db->prepare(q{ BEGIN new_item(:1, :2, :3, :4); END;}); $sth->bind_param(1,$doc_type, {TYPE=>'VARCHAR2(128)'}); $sth->bind_param(2,$question, {TYPE=>'VARCHAR2(255)'}); $sth->bind_param(3,$keywords, {TYPE=>'VARCHAR2(255)'}); $sth->bind_param_inout(4, \$insertid, 100); $sth->execute(); The failure lies in the fact that $insertid is still null when we're all done. The second procedure is eerily similar, but for the fact that one of the fields is a CLOB: PROCEDURE new_version Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- DOCID NUMBER(38) IN NEWEDITOR NUMBER(38) IN NEWDATA CLOB IN NEWID NUMBER(38) OUT And I call this one (unsuccessfully) with : $sth = $db->prepare(q{ BEGIN new_version(:1, :2, :3, :4); END;}); $sth->bind_param(1,$insertid, {TYPE=>'NUMBER(38)'}); $sth->bind_param(2,$owner_uid, {TYPE=>'NUMBER(38)'}); $sth->bind_param(3,$data, {TYPE=>'CLOB'}); $sth->bind_param_inout(4, \$version_id, 100); $sth->execute(); The error message is the dreaded, apparently false, DBD::Oracle::st execute failed: ORA-06550: line 2, column 10: PLS-00306: wrong number or types of arguments in call to 'NEW_VERSION' ORA-06550: line 2, column 10: PL/SQL: Statement ignored (DBD ERROR: OCIStmtExecute) at /usr/local/www/cgi-bin/docmgr line 223. Running under trace level 2, peeked through the log, and got little more than that. If needed, of course I can post it. Any ideas what might be going wrong? thanks for any help! AC