123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- require(dirname(__FILE__)."/connect.inc");
- preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
- if ((isset($matches[1]) && $matches[1] >= 11)) {
- // Server is Oracle 11.2+
- $stmtarray = array(
- "drop user $testuser cascade",
- "create user $testuser identified by $testpassword", // $testuser should be set by the file that includes conn_attr.inc
- "grant connect,resource,dba to $testuser",
- "alter user $testuser enable editions",
- "drop edition myedition1 cascade",
- "drop edition myedition cascade",
- "grant create any edition to $testuser",
- "create edition myedition",
- "create edition myedition1 as child of myedition",
- "grant use on edition myedition to $testuser",
- "grant use on edition myedition1 to $testuser",
- );
- } else {
- // Server is Pre 11.2
- $stmtarray = array(
- "drop user $testuser cascade",
- "create user $testuser identified by $testpassword",
- "grant connect,resource,dba to $testuser",
- );
- }
- foreach ($stmtarray as $stmt) {
- $s = oci_parse($c, $stmt);
- $r = @oci_execute($s);
- if (!$r) {
- $m = oci_error($s);
- if (!in_array($m['code'], array( // ignore expected errors
- 942 // table or view does not exist
- , 1918 // user does not exist
- , 2289 // sequence does not exist
- , 4080 // trigger does not exist
- , 38802 // edition does not exist
- ))) {
- echo "Error:" . $stmt . PHP_EOL . $m['message'] . PHP_EOL;
- if ($m['code'] == 38807) {
- 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;
- }
- die;
- }
- }
- }
- function get_attr($conn,$attr)
- {
- $sel_stmt="select " .$attr. " from v\$session where sid =
- (select sid from v\$session where audsid =
- sys_context('userenv','sessionid')) order by 1";
- $s2 = oci_parse($conn,$sel_stmt);
- oci_execute($s2,OCI_DEFAULT);
- while (oci_fetch($s2)) {
- echo "The value of ".$attr ." is ".oci_result($s2,1)."\n";
- }
- }
- /* Pass $conn_type=1 for a connection with oci_connect()
- Pass $conn_type=2 for ooci_pconnect
- Default will give a oci_new_connect */
- function get_conn($conn_type)
- {
- $user = $GLOBALS['testuser'];
- $password = $GLOBALS['testpassword'];
- $dbase = $GLOBALS['dbase'];
- switch($conn_type) {
- case 1:
- echo "Testing with oci_connect()\n";
- return(oci_connect($user,$password,$dbase));
- break;
- case 2:
- echo "Testing with oci_pconnect()\n";
- return(oci_pconnect($user,$password,$dbase));
- break;
- default:
- echo "Testing with oci_new_connect()\n";
- return(oci_new_connect($user,$password,$dbase));
- break;
- }
- }
- function set_attr($conn,$attr,$sufix)
- {
- if (!strcmp($attr,'MODULE'))
- $r = oci_set_module_name($conn,'PHP TEST'.$sufix);
- else if (!strcmp($attr,'ACTION'))
- $r = oci_set_action($conn,'TASK'.$sufix);
- else if (!strcmp($attr,'CLIENT_INFO'))
- $r = oci_set_client_info($conn,'INFO1'.$sufix);
- else if (!strcmp($attr,'CLIENT_IDENTIFIER'))
- $r = oci_set_client_identifier($conn,'ID00'.$sufix);
- else
- echo "Pass one of the above four attributes!!!\n";
- if ($r) {
- echo "Value of $attr has been set successfully\n";
- }
- //Do a round-trip here
- oci_server_version($conn);
- return $r;
- }
- function set_edit_attr($value)
- {
- $r = oci_set_edition($value);
- if ($r) {
- echo " The value of edition has been successfully set\n";
- }
- return $r;
- }
- function get_edit_attr ($conn) {
- $sel_stmt = "select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual";
- $s2 = oci_parse($conn,$sel_stmt);
- oci_execute($s2,OCI_DEFAULT);
- while (oci_fetch($s2)) {
- echo "The value of current EDITION is ".oci_result($s2,1)."\n";
- }
- }
- function get_sys_attr($conn,$attr)
- {
- $sel_stmt="select " .$attr. " from v\$session where sid =
- (select sid from v\$session where audsid = sys_context('userenv','sessionid')) order by 1";
- $s2 = oci_parse($conn,$sel_stmt);
- oci_execute($s2,OCI_DEFAULT);
- while (oci_fetch($s2)) {
- echo "The value of ".$attr ." is ".oci_result($s2,1)."\n";
- }
- }
- function clean_up($c) {
- $stmtarray = array(
- "drop edition myedition1 cascade",
- "drop edition myedition cascade",
- "drop user " . $GLOBALS['testuser'] . " cascade",
- );
- foreach ($stmtarray as $stmt) {
- $s = oci_parse($c, $stmt);
- @oci_execute($s);
- }
- }
|