On your logical standby database, you specified these rules:
SQL> EXECUTE DBMS_LOGSTBY.SKIP (STMT=> ‘DML’, –
SCHEMA_NAME => ‘HR’, –
OBJECT_NAME=> ‘EMP_NEW’);
SQL> EXECUTE DBMS_LOGSTBY.SKIP (STMT=> ‘DML’, –
SCHEMA_NAME => ‘HR’, –
OBJECT_NAME=> ‘EMP_OLD’);
After completion of the weekend batch cycle you attempt to delete the SQL Apply filters:
SQL> EXECUTE DBMS_LOGSTBY.UNSKIP (STMT=> ‘DML’, –
SCHEMA_NAME => ‘HR’, –
OBJECT_NAME=> ‘EMP%’);
Which is true regarding the execution of the UNSKIP procedure?
A.
It succeeds only if SQL apply is stopped before deleting the SQL Apply filter.
B.
It succeeds but the SQL Apply filters are not deleted.
C.
It deletes both the SQL Apply filters.
D.
It returns an error because the syntax to delete a SQL Apply filter must specify the same object names as
specified when the filter was added.
E.
It succeeds only if all DML statements executed on the primary have been applied on the logical standby
deleting the SQL Apply filter.
Explanation:
The UNSKIP procedure reverses the actions of the SKIP procedure by finding the record, matching all the
parameters, and removing the record from the system table. The match must be exact, and multiple skip
actions can be undone only by a matching number of unskip actions. You cannot undo multiple skip actions
using wildcard characters.
https://docs.oracle.com/cd/B12037_01/appdev.101/b10802/d_lsbydb.htm#997823
Correct Ans: B
What the explanation says is correct. However, UNSKIP will take the wildcard character % as another character and there is no matching SKIP procedure matches ‘EMP%’ so when you execute the statement to delete SQL Apply filters, statement will succeed but since there is no matching ‘EMP%’ found so it will not delete the two filters defined using SKIP procedure.
I have tested this.
Also refer UNSKIP Procedure in the following link
https://docs.oracle.com/database/121/ARPLS/d_lsbydb.htm#ARPLS929
B