2014-06-05 177 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