Annotation of embedaddon/php/ext/oci8/tests/edition_1.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Basic test for setting Oracle 11gR2 "edition" attribute
                      3: --SKIPIF--
                      4: <?php 
                      5: if (!extension_loaded('oci8')) die("skip no oci8 extension"); 
                      6: require(dirname(__FILE__)."/connect.inc");
                      7: if (strcasecmp($user, "system") && strcasecmp($user, "sys")) {
                      8:     die("skip needs to be run as a DBA user");
                      9: }
                     10: if ($test_drcp) {
                     11:     die("skip as Output might vary with DRCP");
                     12: }
                     13: if (preg_match('/Release (1[1]\.2|12)\./', oci_server_version($c), $matches) !== 1) {
                     14:        die("skip expected output only valid when using Oracle 11gR2 or greater databases");
                     15: } else if (preg_match('/^(11\.2|12)\./', oci_client_version()) != 1) {
                     16:     die("skip test expected to work only with Oracle 11gR2 or greater version of client");
                     17: }
                     18: ?>
                     19: --FILE--
                     20: <?php
                     21: 
                     22: /* In 11.2, there can only be one child edition.  So this test will
                     23:  * fail to create the necessary editions if a child edition exists
                     24:  * already 
                     25:  */
                     26: 
                     27: require(dirname(__FILE__)."/conn_attr.inc");
                     28: 
                     29: function select_fn($conn) {
                     30:        $s = oci_parse($conn,"select * from view_ed");
                     31:        oci_execute($s);
                     32:        while ($row = oci_fetch_row($s)) {
                     33:                var_dump($row);
                     34:        }
                     35: }
                     36: /* Create a editon MYEDITION 
                     37:    create a view view_ed in MYEDITION1.
                     38:    create the same view 'view_ed' with a different definition in MYEDITION.
                     39:    select from both the editions and verify the contents. */
                     40: 
                     41: set_edit_attr('MYEDITION');
                     42: $conn = oci_connect('testuser','testuser',$dbase); 
                     43: if ($conn === false) {
                     44:     $m = oci_error();
                     45:     die("Error:" . $m['message']);
                     46: }
                     47:     
                     48: $stmtarray = array(
                     49:     "drop table edit_tab",
                     50:     "create table edit_tab (name varchar2(10),age number,job varchar2(50), salary number)",
                     51:     "insert into edit_tab values('mike',30,'Senior engineer',200)",
                     52:     "insert into edit_tab values('juan',25,'engineer',100)",
                     53:     "create or replace editioning view view_ed as select name,age,job from edit_tab",
                     54: );
                     55: 
                     56: oci8_test_sql_execute($conn, $stmtarray);
                     57: 
                     58: // Check the current edition of the DB and the contents of view_ed.
                     59: get_edit_attr($conn);
                     60: select_fn($conn);
                     61: 
                     62: // Create a different version of view_ed in MYEDITION1.
                     63: set_edit_attr('MYEDITION1');
                     64: $conn2 = oci_new_connect('testuser','testuser',$dbase); 
                     65: $stmt = "create or replace editioning view view_ed as select name,age,job,salary from edit_tab";
                     66: $s = oci_parse($conn2, $stmt);
                     67: oci_execute($s);
                     68: 
                     69: // Check the current edition of the DB and the contents of view_ed.
                     70: get_edit_attr($conn2);
                     71: select_fn($conn2);
                     72: 
                     73: // Verify the contents in MYEDITION EDITION.
                     74: echo "version of view_ed in MYEDITION \n";
                     75: get_edit_attr($conn);
                     76: select_fn($conn);
                     77: 
                     78: clean_up($c);
                     79: 
                     80: oci_close($conn);
                     81: oci_close($conn2);
                     82: echo "Done\n";
                     83: 
                     84: ?>
                     85: --EXPECTF--
                     86: The value of edition has been successfully set
                     87: The value of current EDITION is MYEDITION
                     88: array(3) {
                     89:   [0]=>
                     90:   %unicode|string%(%d) "mike"
                     91:   [1]=>
                     92:   %unicode|string%(%d) "30"
                     93:   [2]=>
                     94:   %unicode|string%(%d) "Senior engineer"
                     95: }
                     96: array(3) {
                     97:   [0]=>
                     98:   %unicode|string%(%d) "juan"
                     99:   [1]=>
                    100:   %unicode|string%(%d) "25"
                    101:   [2]=>
                    102:   %unicode|string%(%d) "engineer"
                    103: }
                    104:  The value of edition has been successfully set
                    105: The value of current EDITION is MYEDITION1
                    106: array(4) {
                    107:   [0]=>
                    108:   %unicode|string%(%d) "mike"
                    109:   [1]=>
                    110:   %unicode|string%(%d) "30"
                    111:   [2]=>
                    112:   %unicode|string%(%d) "Senior engineer"
                    113:   [3]=>
                    114:   %unicode|string%(%d) "200"
                    115: }
                    116: array(4) {
                    117:   [0]=>
                    118:   %unicode|string%(%d) "juan"
                    119:   [1]=>
                    120:   %unicode|string%(%d) "25"
                    121:   [2]=>
                    122:   %unicode|string%(%d) "engineer"
                    123:   [3]=>
                    124:   %unicode|string%(%d) "100"
                    125: }
                    126: version of view_ed in MYEDITION 
                    127: The value of current EDITION is MYEDITION
                    128: array(3) {
                    129:   [0]=>
                    130:   %unicode|string%(%d) "mike"
                    131:   [1]=>
                    132:   %unicode|string%(%d) "30"
                    133:   [2]=>
                    134:   %unicode|string%(%d) "Senior engineer"
                    135: }
                    136: array(3) {
                    137:   [0]=>
                    138:   %unicode|string%(%d) "juan"
                    139:   [1]=>
                    140:   %unicode|string%(%d) "25"
                    141:   [2]=>
                    142:   %unicode|string%(%d) "engineer"
                    143: }
                    144: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>