Annotation of embedaddon/php/ext/oci8/tests/lob_030.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test piecewise fetch of CLOBs equal to, and larger than PHP_OCI_LOB_BUFFER_SIZE
! 3: --SKIPIF--
! 4: <?php
! 5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 6: require(dirname(__FILE__).'/skipif.inc');
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10:
! 11: require dirname(__FILE__).'/connect.inc';
! 12: require dirname(__FILE__).'/create_table.inc';
! 13:
! 14: function insert_verify($c, $tn, $id, $length)
! 15: {
! 16: // Insert the data
! 17: $ora_sql = "INSERT INTO
! 18: ".$tn." (id, clob)
! 19: VALUES (".$id.", empty_clob())
! 20: RETURNING
! 21: clob
! 22: INTO :v_clob ";
! 23:
! 24: $statement = oci_parse($c,$ora_sql);
! 25: $clob = oci_new_descriptor($c,OCI_D_LOB);
! 26: oci_bind_by_name($statement,":v_clob", $clob, -1, OCI_B_CLOB);
! 27: oci_execute($statement, OCI_DEFAULT);
! 28:
! 29: $data = str_pad("x", $length, "x");
! 30: $clob->write($data);
! 31:
! 32: // Verify the data
! 33: $select_sql = "SELECT clob FROM ".$tn." where id = ".$id;
! 34: $s = oci_parse($c, $select_sql);
! 35: oci_execute($s);
! 36:
! 37: $row = oci_fetch_array($s, OCI_RETURN_LOBS);
! 38:
! 39: var_dump(strlen($row[0]));
! 40: }
! 41:
! 42: echo "Test 1: A CLOB with an even number of bytes\n";
! 43: insert_verify($c, $schema.$table_name, 1, 1050000);
! 44:
! 45: echo "Test 2: A CLOB with an odd number of bytes\n";
! 46: insert_verify($c, $schema.$table_name, 2, 1050001);
! 47:
! 48: echo "Test 3: A CLOB of 1048576 bytes (== size of PHP_OCI_LOB_BUFFER_SIZE at time of test creation)\n";
! 49: insert_verify($c, $schema.$table_name, 3, 1048576);
! 50:
! 51: echo "Test 4: A CLOB of 1049028 bytes (the value used for chunks in the code)\n";
! 52: insert_verify($c, $schema.$table_name, 4, 1049028);
! 53:
! 54: echo "Test 5: A CLOB of 1049028-1 bytes\n";
! 55: insert_verify($c, $schema.$table_name, 5, 1049028-1);
! 56:
! 57: echo "Test 6: A CLOB of 1049028+1 bytes\n";
! 58: insert_verify($c, $schema.$table_name, 6, 1049028+1);
! 59:
! 60: require dirname(__FILE__).'/drop_table.inc';
! 61:
! 62: echo "Done\n";
! 63:
! 64: ?>
! 65: --EXPECTF--
! 66: Test 1: A CLOB with an even number of bytes
! 67: int(1050000)
! 68: Test 2: A CLOB with an odd number of bytes
! 69: int(1050001)
! 70: Test 3: A CLOB of 1048576 bytes (== size of PHP_OCI_LOB_BUFFER_SIZE at time of test creation)
! 71: int(1048576)
! 72: Test 4: A CLOB of 1049028 bytes (the value used for chunks in the code)
! 73: int(1049028)
! 74: Test 5: A CLOB of 1049028-1 bytes
! 75: int(1049027)
! 76: Test 6: A CLOB of 1049028+1 bytes
! 77: int(1049029)
! 78: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>