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
Internal support utilities for Data Guard Logical Standby Databases
exec dbms_internal_logstdby.capture_scn;
BEGIN dbms_internal_logstdby.capture_scn; END;
*
ERROR at line 1:
ORA-16287: operation not permitted due to active apply state
ORA-06512: at "SYS.DBMS_INTERNAL_LOGSTDBY", line 378
ORA-06512: at line 1
dbms_internal_logstdby.enable_logical_replication(repl_state IN BOOLEAN);
DECLARE
retVal BOOLEAN := dbms_internal_logstdby.disable_logical_replication;
BEGIN
IF retVal THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/ TRUE
DECLARE
retVal BOOLEAN := dbms_internal_logstdby.disable_logical_replication;
BEGIN
IF retVal THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/ TRUE
DECLARE
retVal BOOLEAN := dbms_internal_logstdby.disable_logical_replication;
BEGIN
IF retVal THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/ FALSE
dbms_internal_logstdby.is_eds_maintained(
owner IN VARCHAR2,
table_name IN VARCHAR2)
RETURN BOOLEAN;
BEGIN
IF dbms_internal_logstdby.is_eds_maintained(USER, 'OBJ$') THEN
dbms_output.put_line('Extended Data Type Supportable');
ELSE
dbms_output.put_line('Not Extended Data Type Supportable');
END IF;
END;
/ Not Extended Data Type Supportable
dbms_internal_logstdby.is_eds_supportable(
owner IN VARCHAR2,
table_name IN VARCHAR2)
RETURN BOOLEAN;
BEGIN
IF dbms_internal_logstdby.is_eds_supportable(USER, 'OBJ$') THEN
dbms_output.put_line('Extended Data Type Supportable');
ELSE
dbms_output.put_line('Not Extended Data Type Supportable');
END IF;
END;
/ Not Extended Data Type Supportable
dbms_internal_logstdby.is_lsdby_supportable(
owner IN VARCHAR2,
table_name IN VARCHAR2)
RETURN BOOLEAN;
BEGIN
IF dbms_internal_logstdby.is_lsby_supportable(USER, 'OBJ$') THEN
dbms_output.put_line('Logical Standby Supportable');
ELSE
dbms_output.put_line('Not Logical Standby Supportable');
END IF;
END;
/ Not Logical Standby Supportable
BEGIN
IF dbms_internal_logstdby.is_pdb_root THEN
dbms_output.put_line('Current container is CDB$ROOT');
ELSE
dbms_output.put_line('Current container is ' || SYS_CONTEXT('USERENV','CON_NAME'));
END IF;
END;
/ Current container is CDB$ROOT
PL/SQL procedure successfully completed.
ALTER SESSION SET CONTAINER = PDBDEV;
BEGIN
IF dbms_internal_logstdby.is_pdb_root THEN
dbms_output.put_line('Current container is CDB$ROOT');
ELSE
dbms_output.put_line('Current container is ' || SYS_CONTEXT('USERENV','CON_NAME'));
END IF;
END;
/
PL/SQL procedure successfully completed.
-- unfortunately another example of Oracle doing EXCEPTION WHEN OTHERS THEN NULL
dbms_internal_logstdby.is_supp_and_skip(
owner IN VARCHAR2,
table_name IN VARCHAR2)
RETURN BOOLEAN;
BEGIN
IF dbms_internal_logstdby.is_supp_and_notskip(USER, 'OBJ$') THEN
dbms_output.put_line('LTRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
/ TRUE
SQL> exec dbms_internal_logstdby.verify_session;
BEGIN dbms_internal_logstdby.verify_session; END;
*
ERROR at line 1:
ORA-16100: not a valid Logical Standby database
ORA-06512: at "SYS.DBMS_INTERNAL_LOGSTDBY", line 919
ORA-06512: at line 1