我试图从PL / SQL调用具有IN和OUT参数的php中的存储过程。当我尝试执行下面的块时,我得到警告:oci_execute():ORA-06550:第11行,第4列:PLS-00103:遇到符号"文件结束"当期待以下之一时: <标识符> <双引号分隔标识符>符号";"取代了"文件结尾"继续。
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 :(得分: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();
?>
分享并享受。