SQL> select comments from dba_registry_history; COMMENTS ---------------------------------------- PSU 11.2.0.4.180717Cursor sharing mode
SQL> show parameter cursor_sharing NAME TYPE VALUE --------------- -------- --------- cursor_sharing string FORCEAdding a policy using dbms_redact fails with following error
SQL> BEGIN 2 DBMS_REDACT.add_policy( 3 object_schema => 'asanga', 4 object_name => 'cc_details', 5 column_name => 'cc_no', 6 policy_name => 'redact_card_info', 7 function_type => DBMS_REDACT.full, 8 expression => 'SYS_CONTEXT(''TOP_SEC'',''APP_USER'') <> ''asanga'' or SYS_CONTEXT(''TOP_SEC'',''APP_USER'') IS NULL' 9 ); 10 END; 11 / BEGIN * ERROR at line 1: ORA-28086: The data redaction policy expression has an error. ORA-28087: The policy expression has an unsupported (use of) operator 'SYS_CONTEXT'. ORA-06512: at "SYS.DBMS_REDACT_INT", line 3 ORA-06512: at "SYS.DBMS_REDACT", line 42 ORA-06512: at line 2As a workaround change the cursor sharing to "exact" and run the add policy.
If cursor sharing mode cannot be changed apply the patch 20693579 which allows DBMS_REDACT.add_policy work even when cursor sharing is set to force.
Related Metalink Notes
Bug 20693579 DBMS_REDACT.ADD_POLICY fails with ORA-28086 when CURSOR_SHARING is force [ID 20693579.8]
Data Redaction Package DBMS_REDACT not valid after upgrading to 11.2.0.4 [ID 1945055.1]
Create Data Redaction Policy returns error ORA-06521: PL/SQL: Error mapping function, ORA-06512: at "SYS.DBMS_REDACT_INT", line 3 [ID 2222699.1]