1--TEST--
2PDO_OCI: Attribute: Oracle Nulls
3--SKIPIF--
4<?php
5if (!extension_loaded('pdo') || !extension_loaded('pdo_oci')) die('skip not loaded');
6require(__DIR__.'/../../pdo/tests/pdo_test.inc');
7PDOTest::skip();
8?>
9--FILE--
10<?php
11
12require(__DIR__ . '/../../pdo/tests/pdo_test.inc');
13
14function do_query($dbh)
15{
16	var_dump($dbh->getAttribute(PDO::ATTR_ORACLE_NULLS));
17	$s = $dbh->prepare("select '' as myempty, null as mynull from dual");
18	$s->execute();
19	while ($r = $s->fetch()) {
20		var_dump($r[0]);
21		var_dump($r[1]);
22	}
23}
24
25$dbh = PDOTest::factory();
26
27print "PDO::ATTR_ORACLE_NULLS: Default: ";
28do_query($dbh);
29
30print "PDO::ATTR_ORACLE_NULLS: PDO::NULL_NATURAL: ";
31$dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_NATURAL); // No conversion.
32
33do_query($dbh);
34
35print "PDO::ATTR_ORACLE_NULLS: PDO::NULL_EMPTY_STRING: ";
36$dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING); // Empty string is converted to NULL.
37
38do_query($dbh);
39
40print "PDO::ATTR_ORACLE_NULLS: PDO::NULL_TO_STRING: ";
41$dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING); // NULL is converted to an empty string.
42
43do_query($dbh);
44
45echo "Done\n";
46
47?>
48--EXPECT--
49PDO::ATTR_ORACLE_NULLS: Default: int(0)
50NULL
51NULL
52PDO::ATTR_ORACLE_NULLS: PDO::NULL_NATURAL: int(0)
53NULL
54NULL
55PDO::ATTR_ORACLE_NULLS: PDO::NULL_EMPTY_STRING: int(1)
56NULL
57NULL
58PDO::ATTR_ORACLE_NULLS: PDO::NULL_TO_STRING: int(2)
59string(0) ""
60string(0) ""
61Done
62