I'm trying to run a datapump export that excludes a set of tables. Here is an example of the tables that I have in the schema…
ACCOUNT
ADDRESS
ARRAY
CALENDAR
DOCUMENT
Each of these tables has a corresponding table that starts with "A_"...
A_ACCOUNT
A_ADDRESS
A_ARRAY
A_CALENDAR
A_DOCUMENT
I would like to exclude all of the "A_" tables from the export. My first thought was to create a parfile with the following…
SCHEMAS=xxxxxxx
EXCLUDE=TABLE:"'NOT IN(select * from user_tables where table_name like 'A_%')'"
I knew this would not work because of the underscore (which is a wildcard in a LIKE clause) in the table name. It excludes all of the tables that start with the letter A.
I included an escape in the SELECT statement…
SCHEMAS=xxxxxxx
EXCLUDE=TABLE:"'NOT IN(select * from user_tables where table_name like 'A\_%' escape '\')'"
This select statement works fine when running it in SQL Plus. However, when running the export I get the following error…
Export: Release 19.0.0.0.0 - Production on Wed Jan 8 17:16:46 2025
Version 19.25.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ORA-39001: invalid argument value
ORA-39071: Value for EXCLUDE is badly formed.
ORA-00920: invalid relational operator
Anyone have thoughts on how to exclude the "A_" tables without excluding the tables that start with "A"??