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