sql >> データベース >  >> RDS >> Oracle

匿名のPL/SQLブロックからPHPに値を返すことはできますか?

    キーワードOUTを使用して、outパラメーターを定義します。 名前とデータ型宣言の間。 IE:

    CREATE OR REPLACE PROCEDURE blah (OUT_PARAM_EXAMPLE OUT VARCHAR2) IS ...
    

    指定しない場合、IN デフォルトです。パラメータを入力と出力の両方として使用する場合は、次を使用します。

    CREATE OR REPLACE PROCEDURE blah (INOUT_PARAM_EXAMPLE IN OUT VARCHAR2) IS ...
    

    次の例では、INパラメーターとOUTパラメーターを使用してプロシージャーを作成します。次に、手順が実行され、結果が印刷されます。

    <?php
       // Connect to database...
       $c = oci_connect("hr", "hr_password", "localhost/XE");
       if (!$c) {
          echo "Unable to connect: " . var_dump( oci_error() );
          die();
       }
    
       // Create database procedure...
       $s = oci_parse($c, "create procedure proc1(p1 IN number, p2 OUT number) as " .
                         "begin" .
                         "  p2 := p1 + 10;" .
                         "end;");
       oci_execute($s, OCI_DEFAULT);
    
       // Call database procedure...
       $in_var = 10;
       $s = oci_parse($c, "begin proc1(:bind1, :bind2); end;");
       oci_bind_by_name($s, ":bind1", $in_var);
       oci_bind_by_name($s, ":bind2", $out_var, 32); // 32 is the return length
       oci_execute($s, OCI_DEFAULT);
       echo "Procedure returned value: " . $out_var;
    
       // Logoff from Oracle...
       oci_free_statement($s);
       oci_close($c);
     ?>
    

    参照:



    1. Oracle.ManagedDataAccess.dllのOracleBulkCopyクラス?

    2. このレーベンシュタイン距離計算を最適化する方法

    3. ビューのMySQLインデックスが機能しない

    4. MySQLクエリのコールバックを返し、Node.jsの配列にプッシュするにはどうすればよいですか?