Well, changing the code to: my $eid=$mesg->entry($n)->get_value('emplId'); my $etp=$mesg->entry($n)->get_value('employeeType'); my $efte=$mesg->entry($n)->get_value('employeeFTE'); my $ear=$mesg->entry($n)->get_value('employeeTotalAnnualRate'); $csr_emp_info->execute($eid,$etp,$efte,$ear);
like you suggested fixed it. Thanks. On May 8, 2013, at 9:30 AM, Bill Ward <b...@wards.net> wrote: > My guess is that get_value() is returning an empty array rather than an undef > scalar when the values are null. Try copying each one to a scalar variable > and including the list of variables in the execute(). It'd be more readable > that way anyway. Or if you must put them all one one line like this, add the > scalar() function on each argument. > > > On Wed, May 8, 2013 at 9:18 AM, Bruce Johnson <john...@pharmacy.arizona.edu> > wrote: > Getting the error: > > DBD::Oracle::st execute failed: called with 3 bind variables when 4 are > needed [for Statement "insert into employee_fte_annualrate_l (emplid, > emptype_cd, fte, annual_rate) values(?,?,?,?)" with ParamValues: > :p1='22057713', :p2='R', :p3='1', :p4='47311'] at > /home/oraweb/perl/frs/kfsupdate.pl line 64, <DATA> line 581. > > I'm pretty sure I count 4 placeholders and 4 parameter values in that error > message, so where is the '3 bind variables' coming from? > > here's the cursor definition: > > my $csr_emp_info = $lda->prepare("insert into employee_fte_annualrate_l > (emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)"); > > I'm pulling the data from an LDAP query, here's the offending line 64 (where > $mesg is the returned LDAP object): > > $csr_emp_info->execute($mesg->entry($n)->get_value('emplId'), > $mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate')); > > All the columns allow null entries, and these are all single-valued entries > in the LDAP schema. > > > -- > Bruce Johnson > University of Arizona > College of Pharmacy > Information Technology Group > > Institutions do not have opinions, merely customs > > > > > > -- > Check out my LEGO blog at brickpile.com > Follow/friend me: Facebook • Flickr • Twitter • LinkedIn -- Bruce Johnson University of Arizona College of Pharmacy Information Technology Group Institutions do not have opinions, merely customs