Try not using numbers for the placeholder names? On Thu, Mar 29, 2012 at 1:46 PM, Bruce Johnson <john...@pharmacy.arizona.edu > wrote:
> 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 > > > -- Check out my LEGO blog at http://www.brickpile.com Follow/friend me: facebook.com/billward • flickr.com/photos/billward • twitter.com/williamward