oci_set_prefetch_lob
(PHP 8.2, PECL OCI8 >= 3.2)
oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.
说明
$statement
, int $prefetch_lob_size
): boolSets the internal buffer size used to fetch each CLOB or BLOB value when the implementation gets the internal Oracle LOB locator from the database after a successful query call to oci_execute() and for each subsequent internal fetch request to the database. Increasing this value can improve the performance of fetching smaller LOBs by reducing round-trips between PHP and the database. Memory usage will change.
The value affects LOBs returned as OCILob instances and also those returned
using OCI_RETURN_LOBS
.
Call oci_set_prefetch_lob() before calling oci_execute(). If it is not called, the value of oci8.prefetch_lob_size is used.
The LOB prefetch value should only be set with Oracle Database 12.2 or later.
参数
-
statement
-
有效的 OCI8 报表标识符 由 oci_parse() 创建,被 oci_execute() 或
REF CURSOR
statement 标识执行。 -
prefetch_lob_size
-
The number of bytes of each LOB to be prefetched, >= 0
返回值
成功时返回 true
, 或者在失败时返回 false
。
更新日志
版本 | 说明 |
---|---|
PECL OCI8 3.2 |
范例
示例 #1 Changing the LOB prefetch value for a query
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Set before calling oci_execute()
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>

User Contributed Notes
备份地址:http://www.lvesu.com/blog/php/function.oci-set-prefetch-lob.php