oci_set_prefetch_lob

(PHP 8.2, PECL OCI8 >= 3.2)

oci_set_prefetch_lob设置每个 CLOB 或 BLOB 预取的数据量。

描述

oci_set_prefetch_lob(资源 $statement, 整型 $prefetch_lob_size): 布尔型

设置用于在实现从数据库获取内部 Oracle LOB 定位器(在成功调用 oci_execute() 查询之后)以及每次后续内部获取请求到数据库时获取每个 CLOB 或 BLOB 值的内部缓冲区大小。增加此值可以通过减少 PHP 和数据库之间的往返次数来提高获取较小 LOB 的性能。内存使用量将会改变。

此值会影响作为 OCILob 实例返回的 LOB,以及使用 OCI_RETURN_LOBS 返回的 LOB。

在调用 oci_execute() 之前调用 oci_set_prefetch_lob()。如果未调用,则使用 oci8.prefetch_lob_size 的值。

LOB 预取值应仅与 Oracle Database 12.2 或更高版本一起设置。

参数

statement

oci_parse() 创建并由 oci_execute() 执行的有效 OCI8 语句标识符,或 REF CURSOR 语句标识符。

prefetch_lob_size

要预取的每个 LOB 的字节数,>= 0

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 更改查询的 LOB 预取值

<?php

$conn
= oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // 在调用 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) : "&nbsp;")."</td>\n";
}
echo
"</tr>\n";
}
echo
"</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top