PROCEDURE TEST ( PARAM1 IN VARCHAR2, PARAM2 OUT XMLTYPE ); #### #!/usr/bin/perl use DBI; use DBD::Oracle qw(:ora_types); use Data::Dumper; my $dbh = DBI->connect( "dsn", "user", "pass", { RaiseError => 1 } ); $dbh->trace(15,"trace"); my $query = $dbh->prepare( qq{BEGIN schema.package.TEST('blah', ?); commit; END;}); my $xml; $query->bind_param_inout(1, \$xml, 32000, { ora_type => ORA_XMLTYPE } ); $query->execute(); $dbh->DESTROY; undef $dbh; print Dumper($xml); #### -> bind_param_inout for DBD::Oracle::st (DBI::st=HASH(0x18d6828)~0x18d67c8 1 SCALAR(0x183ddac) 32000 HASH(0x18d67bc)) dbd_bind_ph(): bind :p1 <== undef (type 0 (DEFAULT (varchar)), inout 0x183ddac, maxlen 32000, attribs: HASH(0x18d67bc)) dbd_rebind_ph() (1): rebinding :p1 as NULL (not-utf8, ftype 108 (ORA_XMLTYPE or SQLT_NTY), csid 0, csform 0, inout 1) in dbd_rebind_ph_xml