1--TEST-- 2oci_lob_read() tests 3--SKIPIF-- 4<?php 5$target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs 6require(__DIR__.'/skipif.inc'); 7?> 8--FILE-- 9<?php 10 11require __DIR__.'/connect.inc'; 12require __DIR__.'/create_table.inc'; 13 14$ora_sql = "INSERT INTO 15 ".$schema.$table_name." (blob) 16 VALUES (empty_blob()) 17 RETURNING 18 blob 19 INTO :v_blob "; 20 21$statement = oci_parse($c,$ora_sql); 22$blob = oci_new_descriptor($c,OCI_D_LOB); 23oci_bind_by_name($statement,":v_blob", $blob,-1,OCI_B_BLOB); 24oci_execute($statement, OCI_DEFAULT); 25 26var_dump($blob->size()); 27var_dump($blob->write(str_repeat("string.", 1000))); 28var_dump($blob->size()); 29oci_commit($c); 30 31$select_sql = "SELECT blob FROM ".$schema.$table_name." FOR UPDATE"; 32$s = oci_parse($c, $select_sql); 33oci_execute($s, OCI_DEFAULT); 34 35var_dump($row = oci_fetch_array($s)); 36 37var_dump(oci_lob_read($row[0], 2)); 38var_dump(oci_lob_read($row[0])); 39var_dump(oci_lob_read()); 40var_dump(oci_lob_eof($row[0])); 41var_dump(oci_lob_eof()); 42 43unset($row[0]->descriptor); 44var_dump(oci_lob_read($row[0],1)); 45var_dump(oci_lob_eof($row[0])); 46 47require __DIR__.'/drop_table.inc'; 48 49echo "Done\n"; 50 51?> 52--EXPECTF-- 53int(0) 54int(7000) 55int(7000) 56array(2) { 57 [0]=> 58 object(OCI-Lob)#%d (1) { 59 ["descriptor"]=> 60 resource(%d) of type (oci8 descriptor) 61 } 62 ["BLOB"]=> 63 object(OCI-Lob)#%d (1) { 64 ["descriptor"]=> 65 resource(%d) of type (oci8 descriptor) 66 } 67} 68string(2) "st" 69 70Warning: oci_lob_read() expects exactly 2 parameters, 1 given in %s on line %d 71NULL 72 73Warning: oci_lob_read() expects exactly 2 parameters, 0 given in %s on line %d 74NULL 75bool(false) 76 77Warning: oci_lob_eof() expects exactly 1 parameter, 0 given in %s on line %d 78NULL 79 80Warning: oci_lob_read(): Unable to find descriptor property in %s on line %d 81bool(false) 82 83Warning: oci_lob_eof(): Unable to find descriptor property in %s on line %d 84bool(false) 85Done 86