If you are using cursors, make sure to free the statement *and* the cursor, especially if there is a possibility of running the proc/cursor again (e.g. with different parameters).
<?php
oci_execute($stmt);
oci_execute($crsr);
// iterate through cursor...
oci_free_statement($stmt);
oci_free_statement($crsr);
?>
You need to do it explicitly, closing connection for example does not seem to release the cursor.
oci_free_statement
(PHP 5, PECL oci8:1.1-1.2.4)
oci_free_statement — 文やカーソルに関連付けられた全てのリソースを解放する
説明
bool oci_free_statement
( resource $statement
)
oci_parse() の結果や Oracle から取得した、 Oracle のカーソルおよび文に関連付けられた全てのリソースを解放します。
パラメータ
- statement
-
有効な OCI ステートメント ID。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
oci_free_statement
rada at instinctive dot it
04-Mar-2008 05:46
04-Mar-2008 05:46
