2014-06-05 179 views
0

中的输出我想从具有IN和OUT参数的PL/SQL中调用PHP中的存储过程。当我尝试执行下面的块时,得到警告:oci_execute():ORA-06550:第11行,第4列:PLS-00103:遇到符号"文件结尾"期待以下某项操作: <标识符> <双引号分隔标识符>符号"; "代替"文件结尾"继续。如何使用oracle PROCEDURE获取php

PHP代码:

<?php 

$sql = 
"DECLARE 
    x_emp_number  VARCHAR2(300); 
    x_emp_name   VARCHAR2(300); 
    x_emp_entiltment VARCHAR2(300); 
    x_emp_job   VARCHAR2(300); 
    x_emp_dept   VARCHAR2(300); 
    x_emp_bs_group  VARCHAR2(300); 

BEGIN 
    apps.xx_hrms_custom_mobile.get_emp_detail_info (729,x_emp_number,x_emp_name,x_emp_entiltment,x_emp_job,x_emp_dept,x_emp_bs_group); 

END "; 

$res1 = oci_parse($link, $sql); 

oci_execute($res1); 

while ($row = oci_fetch_array($res1)) { 
    echo "Completed"; 
} 

exit(); 
?> 

这是程序

PROCEDURE get_emp_Detail_Info (p_person_id IN  NUMBER, 
           x_Emp_Number   OUT VARCHAR2, 
           x_Emp_Name   OUT VARCHAR2, 
           x_Emp_entiltment  OUT VARCHAR2, 
           x_Emp_Job    OUT VARCHAR2, 
           x_Emp_Dept   OUT VARCHAR2, 
           x_Emp_Bs_Group  OUT VARCHAR2); 

我如何获得产值在PHP中使用它?

回答

0

PL/SQL块中的END后面没有分号。试试看:

<?php 

$sql = 
"DECLARE 
    x_emp_number  VARCHAR2(300); 
    x_emp_name   VARCHAR2(300); 
    x_emp_entiltment VARCHAR2(300); 
    x_emp_job   VARCHAR2(300); 
    x_emp_dept   VARCHAR2(300); 
    x_emp_bs_group  VARCHAR2(300); 

BEGIN 
    apps.xx_hrms_custom_mobile.get_emp_detail_info (729,x_emp_number,x_emp_name,x_emp_entiltment,x_emp_job,x_emp_dept,x_emp_bs_group); 

END; "; // Added semi-colon after END 

$res1 = oci_parse($link, $sql); 

oci_execute($res1); 

while ($row = oci_fetch_array($res1)) { 
    echo "Completed"; 
} 

exit(); 
?> 

分享和享受。

+0

好的,我会试试,谢谢 – user3673354