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 <[email protected]> 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 <[email protected]>
> 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