ZEND_ARG_INFO(0, client_information)
ZEND_END_ARG_INFO()
-#ifdef WAITIING_ORACLE_BUG_16695981_FIX
ZEND_BEGIN_ARG_INFO_EX(arginfo_oci_set_db_operation, 0, 0, 2)
ZEND_ARG_INFO(0, connection_resource)
ZEND_ARG_INFO(0, action)
ZEND_END_ARG_INFO()
-#endif
ZEND_BEGIN_ARG_INFO_EX(arginfo_oci_password_change, 0, 0, 4)
ZEND_ARG_INFO(0, connection_resource_or_connection_string)
PHP_FUNCTION(oci_num_rows);
PHP_FUNCTION(oci_set_prefetch);
PHP_FUNCTION(oci_set_client_identifier);
-#ifdef WAITIING_ORACLE_BUG_16695981_FIX
PHP_FUNCTION(oci_set_db_operation);
-#endif
PHP_FUNCTION(oci_set_edition);
PHP_FUNCTION(oci_set_module_name);
PHP_FUNCTION(oci_set_action);
PHP_FE(oci_new_descriptor, arginfo_oci_new_descriptor)
PHP_FE(oci_set_prefetch, arginfo_oci_set_prefetch)
PHP_FE(oci_set_client_identifier, arginfo_oci_set_client_identifier)
-#ifdef WAITIING_ORACLE_BUG_16695981_FIX
PHP_FE(oci_set_db_operation, arginfo_oci_set_db_operation)
-#endif
PHP_FE(oci_set_edition, arginfo_oci_set_edition)
PHP_FE(oci_set_module_name, arginfo_oci_set_module_name)
PHP_FE(oci_set_action, arginfo_oci_set_action)
}
/* }}} */
-#ifdef WAITIING_ORACLE_BUG_16695981_FIX
/* {{{ proto bool oci_set_db_operation(resource connection, string value)
- Sets the "DB operation" on the connection for Oracle end-to-end tracing */
+ Sets the "DB operation" on the connection for Oracle end-to-end tracing.
+ For history, see Oracle bug 16695981 */
PHP_FUNCTION(oci_set_db_operation)
{
#if (OCI_MAJOR_VERSION > 11)
#endif
}
/* }}} */
-#endif /* WAITIING_ORACLE_BUG_16695981_FIX */
/* {{{ proto bool oci_password_change(resource connection, string username, string old_password, string new_password)
Changes the password of an account */
<notes>
This version is for PHP 7 only.
Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working). (KoenigsKind)
+Support setting Oracle Database 'DBOP' end-to-end-tracing attribute. (Requires Oracle 12.2 or later)
Fixed installation on 7.3.
Internal change: Convert some parameter parsing to the Fast Parameter Parsing API.
</notes>
if (!(isset($matches[0]) && $matches[0] >= 12)) {
die("skip works only with Oracle 12c or greater version of Oracle client libraries");
}
-if (!function_exists('oci_set_db_operation'))
-{
- die("skip function oci_set_db_operation() does not exist");
-}
?>
--FILE--
<?php
}
oci_set_db_operation($c, "db_op_1");
-dq($c, 'select * from dual');
+dq($c, 'select /*+ MONITOR */ * from dual');
dq($c, 'select dbop_name from v$sql_monitor where dbop_name is not null order by dbop_exec_id desc');
--TEST--
-oci_set_db_operation: basic test for end-to-end tracing
+oci_set_db_operation: test DBOP for end-to-end tracing
--SKIPIF--
<?php
if (!extension_loaded('oci8')) die ("skip no oci8 extension");
echo "Test 1\n";
oci_set_db_operation($c, "db_op_2_a");
-dq($c, 'select * from dual');
+dq($c, 'select /*+ MONITOR */ * from dual');
-echo "Test 2\n";
oci_set_db_operation($c, "db_op_2_b");
-dq($c, 'select * from dual');
+dq($c, 'select /*+ MONITOR */ * from dual');
+
+dq($c, 'select dbop_name from v$sql_monitor where dbop_name like \'db_op_2%\' order by dbop_exec_id desc');
+
+echo "Test 2\n";
+oci_set_db_operation($c, "");
+dq($c, 'select /*+ MONITOR */ \'dboptest\' from dual');
-echo "Test 3\n";
-dq($c, 'select dbop_name from v$sql_monitor where dbop_name like \'db_op2%\' order by dbop_exec_id desc');
+dq($c, 'select sql_text, dbop_name from v$sql_monitor where sql_text like \'%dboptest2%\' order by dbop_exec_id desc');
?>
===DONE===
<?php exit(0); ?>
---XFAIL--
-Fails due to Oracle Bug 16695981
--EXPECT--
Test 1
array(1) {
["DUMMY"]=>
string(1) "X"
}
-Test 2
array(1) {
["DUMMY"]=>
string(1) "X"
}
-Test 3
+array(1) {
+ ["DBOP_NAME"]=>
+ string(9) "db_op_2_b"
+}
+Test 2
+array(1) {
+ ["'DBOPTEST'"]=>
+ string(8) "dboptest"
+}
array(2) {
+ ["SQL_TEXT"]=>
+ string(121) "select /*+ MONITOR */ sql_text, dbop_name from v$sql_monitor where sql_text like '%dboptest2%' order by dbop_exec_id desc"
["DBOP_NAME"]=>
- string(7) "db_op_2a"
+ NULL
}
===DONE===