Re: Error I've not seen before from oracle DBD

Bill Ward <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <CAKGT8WpFvh0Xmo+L3QcxnzpnK9FcoRmJ3aQWNdB5fiYEQANJpw@mail.gmail.com>
Try not using numbers for the placeholder names?

On Thu, Mar 29, 2012 at 1:46 PM, Bruce Johnson <[email protected]
> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.