xref: /PHP-7.3/ext/oci8/tests/lob_026.phpt (revision 3d497f88)
1--TEST--
2oci_lob_seek()/rewind()/append()
3--SKIPIF--
4<?php
5$target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
6require(dirname(__FILE__).'/skipif.inc');
7?>
8--FILE--
9<?php
10
11require dirname(__FILE__).'/connect.inc';
12require dirname(__FILE__).'/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);
27
28var_dump(oci_lob_write($blob, "test"));
29var_dump(oci_lob_rewind());
30var_dump(oci_lob_rewind($blob));
31var_dump(oci_lob_write($blob, "str"));
32var_dump(oci_lob_seek(10, OCI_SEEK_SET));
33var_dump(oci_lob_seek($blob, 10, OCI_SEEK_SET));
34
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
43var_dump(oci_lob_append());
44var_dump(oci_lob_append($blob));
45var_dump(oci_lob_append($row[0], $blob));
46var_dump(oci_lob_read(10000));
47var_dump(oci_lob_read($row[0], 10000));
48
49oci_commit($c);
50
51$select_sql = "SELECT blob FROM ".$schema.$table_name." FOR UPDATE";
52$s = oci_parse($c, $select_sql);
53oci_execute($s, OCI_DEFAULT);
54
55$row = oci_fetch_array($s);
56
57var_dump(oci_lob_read($row[0], 10000));
58
59require dirname(__FILE__).'/drop_table.inc';
60
61echo "Done\n";
62
63?>
64--EXPECTF--
65object(OCI-Lob)#%d (1) {
66  ["descriptor"]=>
67  resource(%d) of type (oci8 descriptor)
68}
69int(4)
70
71Warning: oci_lob_rewind() expects exactly 1 parameter, 0 given in %s on line %d
72NULL
73bool(true)
74int(3)
75
76Warning: oci_lob_seek() expects parameter 1 to be OCI-Lob, int%sgiven in %s on line %d
77NULL
78bool(true)
79array(2) {
80  [0]=>
81  object(OCI-Lob)#%d (1) {
82    ["descriptor"]=>
83    resource(%d) of type (oci8 descriptor)
84  }
85  ["BLOB"]=>
86  object(OCI-Lob)#%d (1) {
87    ["descriptor"]=>
88    resource(%d) of type (oci8 descriptor)
89  }
90}
91
92Warning: oci_lob_append() expects exactly 2 parameters, 0 given in %s on line %d
93NULL
94
95Warning: oci_lob_append() expects exactly 2 parameters, 1 given in %s on line %d
96NULL
97bool(true)
98
99Warning: oci_lob_read() expects exactly 2 parameters, 1 given in %s on line %d
100NULL
101string(4) "strt"
102string(8) "strtstrt"
103Done
104