(PECL ibm_db2 >= 1.6.0)
db2_lob_read — Получает определённый пользователем размер LOB-файлов при каждом вызове
Используйте db2_lob_read() для итерации по указанному столбцу набора результатов и получения заданного пользователем размера LOB-данных.
stmt
       Допустимый ресурс stmt, содержащий LOB-данные.
      
colnum
       Допустимый номер столбца в наборе результатов ресурса stmt.
      
length
       Размер LOB-данных, извлекаемых из ресурса stmt.
      
   Возвращает количество данных, указанных пользователем.
   Возвращает false, если данные не могут быть получены.
  
Пример #1 Итерации по разным типам данных
<?php
/* Параметры подключения к базе данных */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Получение ресурса подключения */
$conn = db2_connect($db,$username,$password);
if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );
    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );
    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);
    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Чтение LOB-данных */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );
    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );
    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);
    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Чтенеи LOB-данных */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
} else {
    echo 'Нет соединения: ' . db2_conn_errormsg();
}
?>Результат выполнения приведённого примера:
Loop 0: THIS I Loop 1: S A CL Loop 2: OB TES Loop 3: T. THI Loop 4: S IS A Loop 5: CLOB Loop 6: TEST. Loop 0: THIS I Loop 1: S A BL Loop 2: OB TES Loop 3: T. THI Loop 4: S IS A Loop 5: BLOB Loop 6: TEST.
