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

PHPから挿入/更新を行うOracle関数を呼び出しますか?

    DMLを実行する関数は、SELECTでは呼び出すことができません。 呼び出し言語に関係なくステートメント。

    DMLを実行して値を返したい場合は、OUTを使用してストアドプロシージャを作成する方がはるかに理にかなっています。 関数を使用するのではなく、パラメータ。したがって、

    の方がはるかに理にかなっています。
    CREATE OR REPLACE PROCEDURE proc_name_return( p_1    IN NUMBER,
                                                  p_2    IN NUMBER,
                                                  p_ret OUT VARCHAR2 )
    AS
    BEGIN
      p_ret := pkg_tools.replace.site( p_1, p_2 );
    END;
    

    次に、PHPからそのストアドプロシージャを呼び出します

    $sql = 'BEGIN proc_name_return( :p_1, :p_2, :p_ret ); END;';
    

    それをしたくない場合は、このようなこともできると思います(アンダーグラウンドPHPおよびOracleマニュアル

    <?php
    $c = oci_connect('hr', 'hrpwd', 'localhost/XE');
    $s = oci_parse($c, "begin :ret :=pkg_tools.replace_site(1121,3343); end;");
    oci_bind_by_name($s, ':ret', $r, 200);
    oci_execute($s);
    echo "Result is: ".$r;
    ?>
    



    1. EntityFrameworkとMySQLを使用したランダムな順序

    2. 2つのフィールドの合計による順序

    3. レストラン配信データモデル

    4. MySQL:トリガーで区切り文字を使用するにはどうすればよいですか?