Annotation of embedaddon/php/ext/oci8/tests/conn_attr.inc, revision 1.1.1.2
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
1.1.1.2 ! misho 101: echo "Pass one of the above four attributes!!!\n";
1.1 misho 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>