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
Sqltune internal utility procedures and functions that do not access dictionary objects. Some of these utilities are called as part of upgrade and downgrade scripts.
AUTHID
DEFINER
Constants
Name
Data Type
Value
Substitution Patterns
PAT_BEG
VARCHAR2(11)
'$#CDB#$MT1$'
PAT_END
VARCHAR2(11)
$#CDB#$MT2$'
Data Types
-- This record represents a remote context with db link to a remote db.
-- The remote context is required when executing a remote query.
TYPE sqltune_remote_ctx IS RECORD (
db_link_to VARCHAR2(4000) := NULL); -- db link to a remote db
-- global variables for remote contexts
sqlt_rmt_ctx sqltune_remote_ctx;
Returns TRUE if this is the root container of a CDB or FALSE is returned for PDBs and for non-CDB
dbms_sqltune_util0.cdb_is_root(
con_name OUT VARCHAR2,
con_id OUT NUMBER)
RETURN BOOLEAN;
conn / as sysdba
DECLARE
cname VARCHAR2(30);
cid NUMBER;
BEGIN
IF dbms_sqltune_util0.cdb_is_root(cname, cid) THEN
dbms_output.put_line('ROOT: ' || cname);
dbms_output.put_line('ROOT: ' || TO_CHAR(cid));
ELSIF dbms_sqltune_util0.cdb_is_pdb(cname, cid) THEN
dbms_output.put_line('PDB: ' || cname);
dbms_output.put_line('PDB: ' || TO_CHAR(cid));
ELSE
dbms_output.put_line('No Idea Where I Am');
END IF;
END;
/
conn sys@pdbdev as sysdba
-- run the anonymous block again
CHECK_DV_ACCESS
Checks whether a user has select access on an object when Database Vault is enabled
dbms_sqltune_util0.check_dv_access(
user_name IN VARCHAR2 := NULL,
object_owner IN VARCHAR2,
object_name IN VARCHAR2,
object_type IN VARCHAR2 := NULL)
RETURN IN BINARY_INTEGER
ACCESSIBLE BY (PACKAGE SYS.DBMS_SQLTUNE);
Given the value of a bind_data column captured in v$sql and a bind position, this function returns the value of the bind variable at that position in the SQL statement. Bind position start at 1.
dbms_sqltune_util0.extract_bind(
bind_data IN RAW,
bind_pos IN PLS_INTEGER)
RETURN SQL_BIND;
Given the value of a bind_data column captured in v$sql this function returns the collection (list) of bind values associated to the corresponding SQL statement
dbms_sqltune_util0.extract_binds(bind_data IN RAW)
RETURN SQL_BIND_SET PIPELINED;
Given the value of a bind_data column in raw type this function returns the number of bind values contained in the column
dbms_sqltune_util0.get_binds_count(bind_data IN RAW) RETURN PLS_INTEGER;
DECLARE
bdata RAW(2000);
retVal PLS_INTEGER;
x VARCHAR2(30);
y VARCHAR2(40);
z DATE;
sb sys.sql_bind;
BEGIN
SELECT bind_data
INTO bdata
FROM v$sql
WHERE is_bind_sensitive = 'Y'
AND rownum = 1;
dbms_output.put_line(bdata);