Jump to content

Archived

This topic is now archived and is closed to further replies.

watchdog

Calling Oracle API (OCIBindByName failing)

Recommended Posts

???

Hi folks...Can anyone help me with this?  In the code below, Im trying to capture the out variable p_pay_proposal_id as $p_pay_proposal_id to continue using in my php program.  Im not sure on the -1 parameter in the bind.  The error I'm getting is :

<br />
<b>Warning</b>:  ocibindbyname(): OCIBindByName: ORA-01036: illegal variable name/number

Thanks for the help, I appreciate it!

$stmt=ociparse($connection,
"
declare

l_object_version_number        number := 1;
l_assignment_id                number(10);
l_change_date                  date;
l_element_entry_id            number;
l_inv_next_sal_date_warning    boolean;
l_proposed_salary_warning      boolean;
l_approved_warning            boolean;
l_payroll_warning              boolean;
l_pay_proposal_id              number;

p_false boolean := FALSE;
p_true  boolean := TRUE;

begin

l_assignment_id := $assIdRow[ASSIGNMENT_ID];
l_change_date := '$row[SALARYDATE]';

hr_maintain_proposal_api.insert_salary_proposal
(
    p_pay_proposal_id                  => l_pay_proposal_id,
    p_validate                              => p_true,
    p_assignment_id                      => l_assignment_id,
    p_business_group_id                => 0,
    p_object_version_number          => l_object_version_number,
    p_multiple_components            => 'Y',
    p_change_date                      => l_change_date,
    p_approved                            => 'N',
    p_element_entry_id                => l_element_entry_id,
    p_inv_next_sal_date_warning    => l_inv_next_sal_date_warning,
    p_proposed_salary_warning      => l_proposed_salary_warning,
    p_approved_warning                => l_approved_warning,
    p_payroll_warning                  => l_payroll_warning
); end;");

OCIBindByName($stmt, ":p_pay_proposal_id",
                                $p_pay_proposal_id, -1) or die ('Cant bind variable');

$success=@ociexecute($stmt);

Share this post


Link to post
Share on other sites
I haven't tried that before but here is the PHP Manual Page for that with lots of developers notes

http://us3.php.net/ocibindbyname

Maybe this will help.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.