【问题标题】:How to use oracle PROCEDURE to get the output in php如何使用 oracle PROCEDURE 在 php 中获取输出
【发布时间】:2014-06-05 10:31:36
【问题描述】:

我正在尝试从具有 IN 和 OUT 参数的 PL/SQL 调用 php 中的存储过程。当我尝试执行下面的块时,我收到警告:oci_execute(): ORA-06550: line 11, column 4: PLS-00103: Encountered the symbol "end-of-file" when期待以下之一:; 符号“;”被替换为“文件结尾”以继续。

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 中使用它??

【问题讨论】:

    标签: php sql oracle stored-procedures


    【解决方案1】:

    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();
    ?>
    

    分享和享受。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多