ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
As opposed to dbms_sqltune_util0, is for sqltune and sqlpi internal utility procedures and functions that might access dictionary objects.
It should be used for all general utility functions that can/need to be DEFINER's rights. If a function only needs to be accessible from the dbms_sqltune/sqldiag/etc feature layer,
do not put it here, but rather in the infrastructure layer (prvssqlf). This layer is for code that should be globally accessible, even from the internal package.
AUTHID
DEFINER
Constants
Name
Data Type
Value
Target object IDs which are defined in OBJ_XXX_NUM
OBJ_SQL#
NUMBER
7
OBJ_SQLSET#
NUMBER
8
OBJ_AUTO_SQLWKLD#
NUMBER
22
OBJ_SPA_EXEC_PROP#
NUMBER
23
OBJ_SPA_TASK#
NUMBER
24
OBJ_SPM_EVOLVE_TASK#
NUMBER
25
OBJ_COMPARE_PLANS_TASK#
NUMBER
30
Execution Type Names
SQLTUNE
VARCHAR2(10)
'TUNE SQL'
TEST_EXECUTE
VARCHAR2(12)
'TEST EXECUTE'
EXPLAIN_PLAN
VARCHAR2(12)
'EXPLAIN PLAN'
COMPARE
VARCHAR2(19)
'COMPARE PERFORMANCE'
STS2TRIAL
VARCHAR2(19)
'CONVERT SQLSET'
SQLDIAG
VARCHAR2(19)
'SQL DIAGNOSIS'
SPMEVOLVE
VARCHAR2(14)
'SPM EVOLVE'
COMPAREPLANS
VARCHAR2(19)
'COMPARE PLANS'
Execution Type IDs
SQLTUNE#
INTEGER
1
EXECUTE#
INTEGER
2
EXPLAIN#
INTEGER
3
SQLDIAG#
INTEGER
4
COMPARE#
INTEGER
5
EVOLVE#
INTEGER
6
COMPAREPLANS#
INTEGER
7
STS Properties
PROP_SQLSET_NAME
VARCHAR2(30)
'SQLSET_NAME'
PROP_SQLSET_OWNER
VARCHAR2(30)
'SQLSET_OWNER'
PROP_SQLSET_ID
VARCHAR2(30)
'SQLSET_ID'
PROP_SQLSET_DESC
VARCHAR2(30)
'SQLSET_DESC'
Shared properties for multi-statement targets
PROP_NB_SQL
VARCHAR2(30)
'NB_STMTS'
PROP_CON_DBID
VARCHAR2(30)
'CON_DBID'
Properties for STS2 (compare STS)
PROP_SQLSET_NAME2
VARCHAR2(30)
'SQLSET_NAME2'
PROP_SQLSET_OWNER2
VARCHAR2(30)
'SQLSET_OWNER2'
PROP_SQLSET_ID2
VARCHAR2(30)
'SQLSET_ID2'
PROP_SQLSET_DESC2
VARCHAR2(30)
'SQLSET_DESC2'
PROP_NB_SQL2
VARCHAR2(30)
'NB_STMTS2'
PROP_CON_DBID2
VARCHAR2(30)
'CON_DBID2'
Automatic Workload Properties
PROP_SUM_ELAPSED
VARCHAR2(30)
'SUM_ELAPSED'
Single statement Properties
PROP_SQL_ID
VARCHAR2(30)
'SQL_ID'
PROP_PARSING_SCHEMA
VARCHAR2(30)
'PARSING_SCHEMA'
PROP_SQL_TEXT
VARCHAR2(30)
'SQL_TEXT'
PROP_TUNE_STATS
VARCHAR2(30)
'TUNE_STATS'
Parse modes for query
PARSE_MOD_SQLSET
VARCHAR2(6)
'SQLSET'
PARSE_MOD_AWR
VARCHAR2(4)
'AWR'
PARSE_MOD_CURSOR
VARCHAR2(5)
'V$SQL'
PARSE_MOD_CAPCC
VARCHAR2(8)
'V$SQLCAP'
PARSE_MOD_PROFILE
VARCHAR2(10)
'SQLPROFILE'
Task DBLINK
TASK_DBLINK_OWNER
VARCHAR2(3)
'SYS'
TASK_DBLINK_USER
VARCHAR2(7)
'SYS$UMF'
PARAM_DBLINK_TO
VARCHAR2(16)
'DATABASE_LINK_TO'
Validate Name
TYPE_STS
BINARY_INTEGER
0
TYPE_DBOP
BINARY_INTEGER
1
Validate Name
DB_TYPE_ROOT
VARCHAR2(4)
'ROOT'
DB_TYPE_PDB
VARCHAR2(3)
'PDB'
DB_TYPE_IMP
VARCHAR2(8)
'IMPORTED'
AWR View Prefixes
AWR_VIEW_ROOT
VARCHAR2(8)
'AWR_ROOT'
AWR_VIEW_PDB
VARCHAR2(7)
'AWR_PDB'
Miscellaneous
PNUM_SYSPLS_OBEY_FORCE
NUMBER
1
Data Types
TYPE property_map IS TABLE OF VARCHAR2(32767) INDEX BY VARCHAR2(32767);
TYPE task_wkldobj IS RECORD(
adv_id NUMBER, -- advisor id#
task_name VARCHAR2(30), -- name of the current task
type NUMBER, -- one of OBJ_XXX_NUM keat constants
obj_id NUMBER, -- object id of target object
props property_map, -- (name, value) pairs describing the target
cursql task_sqlobj, -- SQL object for the current statement
is_cdb BOOLEAN); -- checks if this ia cdb env
TYPE task_spaobj IS RECORD(
exec1_name VARCHAR2(32767), -- the execution name of trial one
exec1_type_num NUMBER, -- the execution type of trial one
comp_exec_name VARCHAR2(32767), -- compare exec name, max length ?
ce_obj_id NUMBER, -- obj id of comp env
target_obj_type NUMBER, -- could be SQLSET or SQL
target_obj_id NUMBER, -- id of the target object of SPA task
wkld task_wkldobj); -- has the target obj idDBMS_SQLDIAG
Dependencies
DBA_ADVISOR_EXECUTIONS
DBMS_SQLTUNE_LIB
V$PARAMETER
DBA_ADVISOR_EXEC_PARAMETERS
DBMS_SQLTUNE_UTIL0
V$SESSION_FIX_CONTROL
DBA_ADVISOR_OBJECTS
DBMS_SQLTUNE_UTIL2
V$SQL_MONITOR
DBA_ADVISOR_PARAMETERS
DBMS_SQL_MONITOR
WRI$_ADV_DEFINITIONS
DBA_ADVISOR_RECOMMENDATIONS
DBMS_STANDARD
WRI$_ADV_DEF_PARAMETERS
DBA_AUTOSQLSET_SQLSTAT
DBMS_SYS_ERROR
WRI$_ADV_EXECUTIONS
DBMS_ADVISOR
DBMS_XPLAN
WRI$_ADV_OBJECTS
DBMS_ASH_INTERNAL
DBMS_XPLAN_INTERNAL
WRI$_ADV_SQLTUNE
DBMS_ASSERT
GV_$SQL
WRI$_ADV_TASKS
DBMS_AUTO_REPORT_INTERNAL
PRVTEMX_ADMIN
WRI$_REPT_SPMEVOLVE
DBMS_LOB
PRVT_ADVISOR
WRI$_REPT_SQLPI
DBMS_SPM
PRVT_AWRV_METADATA
WRI$_REPT_SQLT
DBMS_SPM_INTERNAL
PRVT_AWR_VIEWER
WRI$_SQLSET_DEFINITIONS
DBMS_SQLDIAG
PRVT_EMX
WRI$_SQLSET_STATEMENTS
DBMS_SQLPA
PRVT_SQLADV_INFRA
X$KSPPCV
DBMS_SQLTUNE
PRVT_SQLPA
X$KSPPI
DBMS_SQLTUNE_INTERNAL
PRVT_SQLSET_INFRA
Documented
No
Exceptions
Error Code
Reason
ORA-13645
The specified execution <execution_task_name> does not exist for this task
Sets the indicated parameter to a hard-coded value if it is currently different, and returns a Boolean value indicating whether or not the value had to be changed
dbms_sqltune_util1.alter_session_parameter(pnum IN NUMBER) RETURN BOOLEAN;
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
BEGIN
IF dbms_sqltune_util1.alter_session_parameter(dbms_sqltune_util1.pnum_syspls_obey_force) THEN
dbms_output.put_line('Change Required');
ELSE
dbms_output.put_line('No Change Required');
END IF;
END;
/
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
Returns copying values from remote/local CLOB to local/remote CLOB.
dbms_sqltune_util1.copy_clob(
inCLOB IN CLOB,
outCLOB IN OUT NOCOPY CLOB);
DECLARE
iClob CLOB := 'Welcome to Morgan''s Library Where Database
21c Has Arrived';
oClob CLOB;
BEGIN
dbms_sqltune_util1.copy_clob(iClob, oClob);
dbms_output.put_line(oClob);
END;
/
DECLARE
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: invalid LOB locator specified:
ORA-22275
ORA-06512: at "SYS.DBMS_LOB", line 1163
ORA-06512: at "SYS.DBMS_SQLTUNE_UTIL1", line 1786
ORA-06512: at line 5
Builds the text of the SQL statement that captures plans
from AWR based on the flags passed as parameters
dbms_sqltune_util1.get_awr_query_text(
con_dbid_bind IN BOOLEAN := FALSE,
stmt_bind IN BOOLEAN := FALSE,
begin_snap_op IN NUMBER := 0,
stats_only IN BOOLEAN := FALSE,
cmd_type_filter IN BOOLEAN := FALSE,
awr_view IN VARCHAR2 := AWR_VIEW_ROOT)
RETURN VARCHAR2;
Checks to see if the current DB is a physical standby
dbms_sqltune_util1.is_standby RETURN BOOLEAN;
BEGIN
IF dbms_sqltune_util1.is_standby THEN
dbms_output.put_line('This database is a standby');
ELSE
dbms_output.put_line('This database is not a standby');
END IF;
END;
/ This database is not a standby
Validates the execution name of an SPA task to ensure it was a Compare Performance (type id 5) while if NULL, returns the name of the most recent compare execution for the SPA task
dbms_sqltune_util1.resolve_exec_name(
task_name IN VARCHAR2,
task_owner IN VARCHAR2,
exec_name IN OUT VARCHAR2)
RETURN NUMBER;
Follows up on a call to set_session_parameter by setting it back to its initial value. Should only be called when the set function returns TRUE indicating the value was changed
dbms_sqltune_util1.restore_session_parameter(pnum IN NUMBER);
exec dbms_sqltune_util1.validate_name('1234567890123456789012345678901234567890');
BEGIN
dbms_sqltune_util1.validate_name('1234567890123456789012345678901234567890'); END;
*
ERROR at line 1:
ORA-13755: invalid "SQL Tuning Set" name
ORA-06512: at "SYS.DBMS_SQLTUNE_UTIL1", line 457
ORA-06512: at line 1