Annotation of embedaddon/php/ext/oci8/tests/conn_attr.inc, revision 1.1

1.1     ! misho       1: <?php
        !             2: 
        !             3: require(dirname(__FILE__)."/connect.inc");
        !             4: 
        !             5: $sv = oci_server_version($c);
        !             6: $sv = preg_match('/Release (11\.2|12)\./', $sv, $matches);
        !             7: if ($sv == 1) {
        !             8:     // Server is Oracle 11.2+
        !             9:     $stmtarray = array(
        !            10:         "drop user testuser cascade",
        !            11:         "create user testuser identified by testuser",
        !            12:         "grant connect,resource,dba to testuser",
        !            13:         "alter user testuser enable editions",
        !            14:         "drop edition myedition1",
        !            15:         "drop edition myedition",
        !            16:         "grant create any edition to testuser",
        !            17:         "create edition myedition",
        !            18:         "create edition myedition1 as child of myedition",
        !            19:         "grant use on edition myedition to testuser",
        !            20:         "grant use on edition myedition1 to testuser",
        !            21:     );
        !            22: }
        !            23: else {
        !            24:     // Server is Pre 11.2 
        !            25:     $stmtarray = array(
        !            26:         "drop user testuser cascade",
        !            27:         "create user testuser identified by testuser",
        !            28:         "grant connect,resource,dba to testuser",
        !            29:     );
        !            30: }
        !            31: 
        !            32: foreach ($stmtarray as $stmt) {
        !            33:     $s = oci_parse($c, $stmt);
        !            34:     $r = @oci_execute($s);
        !            35:        if (!$r) {
        !            36:                $m = oci_error($s);
        !            37:                if (!in_array($m['code'], array(   // ignore expected errors
        !            38:                         942 // table or view does not exist
        !            39:                      , 1918 // user does not exist 
        !            40:                      , 2289 // sequence does not exist
        !            41:                      , 4080 // trigger does not exist
        !            42:                     , 38802 // edition does not exist
        !            43:                 ))) {
        !            44:                        echo "Error:" . $stmt . PHP_EOL . $m['message'] . PHP_EOL;
        !            45:             if ($m['code'] == 38807) {
        !            46:                 echo "You appear to already have an edition in use that prevents this PHP test from running.  Query DBA_EDITIONS to see existing editions.". PHP_EOL;
        !            47:             }
        !            48:             die;
        !            49:                }
        !            50:        }
        !            51: }
        !            52: 
        !            53: function get_attr($conn,$attr)
        !            54: {
        !            55:     $sel_stmt="select " .$attr. " from v\$session where sid = 
        !            56:        (select sid from v\$session where audsid = 
        !            57:        sys_context('userenv','sessionid')) order by 1";
        !            58:     $s2 = oci_parse($conn,$sel_stmt);
        !            59:     oci_execute($s2,OCI_DEFAULT);
        !            60:     while (oci_fetch($s2)) {
        !            61:         echo "The value of ".$attr ." is ".oci_result($s2,1)."\n";
        !            62:     }
        !            63: }
        !            64: 
        !            65: /* Pass $conn_type=1 for a connection with oci_connect() 
        !            66:    Pass $conn_type=2 for ooci_pconnect 
        !            67:    Default will give a oci_new_connect */
        !            68: 
        !            69: function get_conn($conn_type)
        !            70: {
        !            71:        $user = 'testuser';
        !            72:        $password = 'testuser';
        !            73:        $dbase = $GLOBALS['dbase'];
        !            74:        switch($conn_type) {
        !            75:         case 1:
        !            76:             echo "Testing with oci_connect()\n";
        !            77:             return(oci_connect($user,$password,$dbase));
        !            78:             break;
        !            79:         case 2:
        !            80:             echo "Testing with oci_pconnect()\n";
        !            81:             return(oci_pconnect($user,$password,$dbase));
        !            82:             break;
        !            83:         default:
        !            84:             echo "Testing with oci_new_connect()\n";
        !            85:             return(oci_new_connect($user,$password,$dbase));
        !            86:             break;
        !            87:        }
        !            88: }
        !            89: 
        !            90: function set_attr($conn,$attr,$sufix)
        !            91: {
        !            92:        if (!strcmp($attr,'MODULE')) 
        !            93:                $r = oci_set_module_name($conn,'PHP TEST'.$sufix);
        !            94:        else if (!strcmp($attr,'ACTION')) 
        !            95:         $r = oci_set_action($conn,'TASK'.$sufix);
        !            96:        else if (!strcmp($attr,'CLIENT_INFO')) 
        !            97:         $r = oci_set_client_info($conn,'INFO1'.$sufix);
        !            98:        else if (!strcmp($attr,'CLIENT_IDENTIFIER')) 
        !            99:         $r = oci_set_client_identifier($conn,'ID00'.$sufix);
        !           100:        else
        !           101:                echo "Pass one of the above four attibutes!!!\n";
        !           102:        if ($r) {
        !           103:                echo "Value of $attr has been set successfully\n";
        !           104:     }
        !           105:     
        !           106:        //Do a round-trip here
        !           107:        oci_server_version($conn);
        !           108:        return $r;    
        !           109: }
        !           110: 
        !           111: function set_edit_attr($value)
        !           112: {
        !           113:        $r = oci_set_edition($value);
        !           114:     if ($r) {
        !           115:                echo " The value of edition has been successfully set\n";
        !           116:     }
        !           117:        return $r;
        !           118: }
        !           119: 
        !           120: function get_edit_attr ($conn) {
        !           121:        $sel_stmt = "select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual";
        !           122:     $s2 = oci_parse($conn,$sel_stmt);
        !           123:     oci_execute($s2,OCI_DEFAULT);
        !           124:     while (oci_fetch($s2)) {
        !           125:         echo "The value of current EDITION is ".oci_result($s2,1)."\n";
        !           126:     }
        !           127: }
        !           128: 
        !           129: function get_sys_attr($conn,$attr)
        !           130: {
        !           131:        $sel_stmt="select " .$attr. " from v\$session where sid = 
        !           132:        (select sid from v\$session where audsid = sys_context('userenv','sessionid')) order by 1";
        !           133:     $s2 = oci_parse($conn,$sel_stmt);
        !           134:     oci_execute($s2,OCI_DEFAULT);
        !           135:     while (oci_fetch($s2)) {
        !           136:         echo "The value of ".$attr ." is ".oci_result($s2,1)."\n";
        !           137:     }
        !           138: }
        !           139: 
        !           140: function clean_up($c) {
        !           141:        $stmtarray = array(
        !           142:         "drop user testuser cascade",
        !           143:         "drop edition myedition1",
        !           144:         "drop edition myedition",
        !           145:        );
        !           146:     
        !           147:        foreach ($stmtarray as $stmt) {
        !           148:         $s = oci_parse($c, $stmt);
        !           149:         @oci_execute($s);
        !           150:        }
        !           151: }

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