Can't mix placeholder styles (:foo/?) at /usr/local/lib64/perl5/DBD/Oracle.pm
line 329., referer:
https://resource-scheduler.pharmacy.arizona.edu/calendar/reserve.pl
I thought this is the code fragment producing this error:
my $lda = DBI->connect("dbi:Oracle:$dbname", $login, $dbpass) or die
$DBI::errstr;
my $sq_res_pend = "insert into reservations_pend (pid, email, cn, purpose,
reserver_affstring) values(?,?,?,?,?) returning reservations_pend_id into
:NEWID";
my $csr_res_pend = $lda->prepare($sq_res_pend) or die $DBI::errstr;
$csr_res_pend->bind_param(1,$res_pid) or die $DBI::errstr;
$csr_res_pend->bind_param(2,$res_email) or die $DBI::errstr;
$csr_res_pend->bind_param(3,$res_name) or die $DBI::errstr;
$csr_res_pend->bind_param(4,$res_purp) or die $DBI::errstr;
$csr_res_pend->bind_param(5,$res_affil) or die $DBI::errstr;
$csr_res_pend->bind_param_inout(":NEWID",\$new_res_id, 25) or die $DBI::errstr;
$csr_res_pend->execute();
But when I changed it to all ':foo" style, I still got the same error:
my $sq_res_pend = "insert into reservations_pend (pid, email, cn, purpose,
reserver_affstring) values(:1,:2,:3,:4,:5) returning reservations_pend_id into
:NEWID";
my $csr_res_pend = $lda->prepare($sq_res_pend) or die $DBI::errstr;
$csr_res_pend->bind_param(':1',$res_pid) or die $DBI::errstr;
$csr_res_pend->bind_param(':2',$res_email) or die $DBI::errstr;
$csr_res_pend->bind_param(':3',$res_name) or die $DBI::errstr;
$csr_res_pend->bind_param(':4',$res_purp) or die $DBI::errstr;
$csr_res_pend->bind_param(':5',$res_affil) or die $DBI::errstr;
$csr_res_pend->bind_param_inout(":NEWID",\$new_res_id, 25) or die $DBI::errstr;
$csr_res_pend->execute();
This is the only place in my program where I even used bind_param; every other
cursor is of the 'select foo, bar, bax from thetable where id =?' style.
Also, the line number in the error is from Oracle.pm, how do I find out what
line in my program caused this?
--
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group
Institutions do not have opinions, merely customs