Oracle Ignore Rules Format
Published 14 February 2025
Format
Oracle ignore rules files have the .scpf extension. Under the hood they are structured as JSON.
Example:
{
"filters": {
"table": [
"table_one"
]
}
}
Syntax
If no ignore rules are specified, all objects are included. For each object type, a rule expression will determine the objects to include based on the object's name. The rule expression can also be set up to exclude objects by using the negation operator.
Two new operators have been added to standard Oracle regular expressions.
- ! -; negation: used when we want to reverse the result of the condition (be sure to include the backslash in both the GUI and command-line)
- \& -; logical AND: used when several conditions are combined within one pattern (be sure to include the backslash in both the GUI and command-line)
Suppose we have a database schema with the following tables:
T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB
Intent | Pattern | Result (included tables are ** BOLD**) |
---|---|---|
Fetch all objects | . (or leave the field unchanged) | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch exactly one object with the given name: T2 | T2 (^T2$ will also work) | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects containing a specified pattern, e.g. TAB | TAB1+ | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects that start with a specified pattern, e.g. PRE | \!^PRE | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects that do not start with a specified pattern, e.g. PRE | T2 (^T2$ will also work) | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects that must end with a specified pattern, e.g. PRE | PRE$ | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects that must not end with a specified pattern | \!PRE$ | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetching objects using a combination of patterns
All listed patterns within a group are treated as a logical OR, but in a single pattern custom marker \& can be used which is translated to logical AND.
Intent | Pattern | Result (included tables are ** BOLD**) |
---|---|---|
Fetch objects starting with PRE, containing TAB AND NOT ending with SUB | ^PRE+\&TAB\&\!SUB$ | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Fetch objects containing: * table with name T1 * tables with name starting from ONE * tables with name starting from PRE and containing phrase TAB and not ending with SUB e.g. T1 OR ^ONE OR (^PRE AND TAB AND NOT SUB$) |
"T1”, "^ONE", "^PRE+\&TAB\&\!SUB$" | T1, T2, T3, PRE_TAB1, PRE_TAB2, PRE_TAB1_PRE, PRE_TAB1_SUB, ONE_TAB1_PRE, ONE_TAB2_SUB |
Exclude all tables | \! | All tables are excluded |