1

全て。私はオラクルの手順からの応答をキャッチすることについて質問があります..それは私の手順です:

PROCEDURE generate_receipt_simop(in_receipt_number IN VARCHAR2, in_inv_status IN VARCHAR2, in_kode_cabang IN VARCHAR2, out_status OUT VARCHAR2, out_message OUT VARCHAR2)is
v_result_simop              NUMBER  DEFAULT 0;
out_status_simop            VARCHAR2(100)   DEFAULT NULL;
out_errormessage_simop      VARCHAR2(100)   DEFAULT NULL;
v_org_id                    NUMBER  DEFAULT 0;

BEGIN    
************
EXCEPTION WHEN OTHERS THEN
        logf('ROLLBACK (RECEIPT)');
        ROLLBACK;
        out_status     := 'F';
        out_message    := 'GENERATE FAILED (RECEIPT) '|| in_receipt_number ||SQLERRM;          
    END; 

次のように、phpを使用して応答を呼び出して読み取ろうとします:

$param_xpi= array(
                        "in_receipt_number"=>"$x",
                        "in_receipt_status"=>"Y",
                        "in_kode_cabang"=>"PTK",
                        "out_status"=>"",
                        "out_message"=>""
                        );

            $sql_xpi = "DECLARE
            in_receipt_number VARCHAR2(50) DEFAULT '$x';
            in_kode_cabang VARCHAR2(3) DEFAULT 'PTK';
            out_status VARCHAR2(1) DEFAULT '';
            out_message VARCHAR2(240) DEFAULT '';
            in_inv_status VARCHAR2(1) DEFAULT 'Y';
            BEGIN
            XPI2.XPI2_AR_API_RECEIPT_PKG.generate_receipt_simop(in_receipt_number, in_inv_status, in_kode_cabang, out_status, out_message);
            dbms_output.put_line('Generate Status : ' || out_status);
            dbms_output.put_line('Message Status : ' || out_message);
            END;";

            $result = $db_simkeu->query($sql_xpi, $param_xpi);

            print_r($result);

            $out_status1 = $param_xpi['out_status'];
            $out_message = $param_xpi['out_message'];

ただし、変数 $out_status1 と $out_message は常に null です。このphpコードで応答をリッスンする方法に問題があると思います。助けてください

ご回答ありがとうございます。

4

1 に答える 1

0

コードが例外をスローすることは確かですか? 例外ハンドラーWHEN OTHERSは、(何らかの) 例外が発生した場合にのみ機能します。したがって、コードが例外をスローしない場合、値は null のままです。

于 2012-11-01T08:22:48.627 に答える