(PHP 8.2, PECL OCI8 >= 3.2)
oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.
Sets 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
Der Identifizierer eines
gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt
und von oci_execute() oder einem REF
CURSOR
-Ausdruck verwendet wird.
prefetch_lob_size
The number of bytes of each LOB to be prefetched, >= 0
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Beispiel #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);
?>