hey all,
I've found a bug in DBI-1.12/DBD::Oracle-1.30 relating to binding variables.
With the following table
# create table a (aa int, bb char(20) not null, c char(5));
The following bind fails:
use DBI;
my $dbh = DBI->connect("dbi:Oracle:MDSSTEST", "<user>", "<pass>");
my $argh = $dbh->prepare ( "insert into a values ( ?,?,? ) " );
$argh->bind_param(1, 1);
$argh->bind_param(2, ' ');
$argh->bind_param(3, ' ');
$argh->execute();
wheras:
my $argh2 = $dbh->prepare ( " insert into a values ( 1,' ',' ' ) ");
$argh2->execute();
works.
The first gets the error:
DBD::Oracle::st execute failed: ORA-01400: cannot insert NULL into
("MDSS"."A"."BB") (DBD ERROR: OCIStmtExecute) at /tmp/aab.p line 14.
which indicates to me that the ' ' is being interpreted as null by DBD::Oracle..
Anyways, this is a pretty critical error for us. I'm going to try to get a
patch ready ASAP... if someone else has already done this, I'd appreciate
getting it..
Ed