php-src/ext/oci8/tests/lob_001.phpt

99 lines
2.1 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--TEST--
oci_lob_write() and friends
--SKIPIF--
<?php
$target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
require(dirname(__FILE__).'/skipif.inc');
?>
--FILE--
<?php
require(dirname(__FILE__).'/connect.inc');
// Initialization
$stmtarray = array(
"drop table lob_001_tab",
"create table lob_001_tab (id number, b1 blob)",
);
oci8_test_sql_execute($c, $stmtarray);
echo "Test 1 OCI_B_BLOB bind\n";
$statement = oci_parse($c, "insert into lob_001_tab (id, b1) values (1, empty_blob()) returning b1 into :v_b1 ");
$blob = oci_new_descriptor($c,OCI_D_LOB);
var_dump(oci_bind_by_name($statement, ":v_b1", $blob, -1, OCI_B_BLOB));
oci_execute($statement, OCI_DEFAULT);
var_dump($blob);
echo "Test 2\n";
var_dump($blob->write("test"));
var_dump($blob->tell());
var_dump($blob->seek(10, OCI_SEEK_CUR));
var_dump($blob->write("string"));
var_dump($blob->flush());
oci_commit($c);
echo "Test 3\n";
$s = oci_parse($c, "select b1 from lob_001_tab where id = 1");
oci_execute($s);
var_dump(oci_fetch_array($s, OCI_RETURN_LOBS));
echo "Test 4 SQLT_BLOB (an alias for OCI_B_BLOB) bind\n";
$statement = oci_parse($c, "insert into lob_001_tab (id, b1) values (2, empty_blob()) returning b1 into :v_b1 ");
$blob = oci_new_descriptor($c,OCI_D_LOB);
var_dump(oci_bind_by_name($statement, ":v_b1", $blob, -1, SQLT_BLOB));
oci_execute($statement, OCI_DEFAULT);
var_dump($blob->write("test row 2"));
$s = oci_parse($c, "select b1 from lob_001_tab where id = 2");
oci_execute($s);
var_dump(oci_fetch_array($s, OCI_RETURN_LOBS));
// Cleanup
$stmtarray = array(
"drop table lob_001_tab"
);
oci8_test_sql_execute($c, $stmtarray);
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
Test 1 OCI_B_BLOB bind
bool(true)
object(OCI-Lob)#%d (1) {
["descriptor"]=>
resource(%d) of type (oci8 descriptor)
}
Test 2
int(4)
int(4)
bool(true)
int(6)
bool(false)
Test 3
array(2) {
[0]=>
string(20) "teststring"
["B1"]=>
string(20) "teststring"
}
Test 4 SQLT_BLOB (an alias for OCI_B_BLOB) bind
bool(true)
int(10)
array(2) {
[0]=>
string(10) "test row 2"
["B1"]=>
string(10) "test row 2"
}
===DONE===