[PHP] Oracle のストアドプロシージャを実行する | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

PHP で Oracle のストアドプロシージャを呼び出したいと思ったのですが、一見したところ、OCI8 関数にはストアドプロシージャを呼び出す関数が見当たりません。

どうやら、以下のようにストアドプロシージャを BEGIN~END; で括って PL/SQL ブロックとして実行するのが正解のようです。

$sql = 'BEGIN sayHello(:name, :message); END;';
$stmt = oci_parse($conn,$sql);
oci_bind_by_name($stmt,':name',$name,32);
oci_bind_by_name($stmt,':message',$message,32);
oci_execute($stmt);