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