ORA-39195
ORA-39195 means that the table you want to export does not exist in the current database, even though you qualify exported tables by schema names. Let's see an error pattern.
[oracle@test ~]$ expdp \"/ as sysdba\" tables=hr.employees
...
ORA-39001: invalid argument value
ORA-39195: At least one schema in the TABLE_FILTER does not exist.
As you can see, we used OS authentication (no password) to export the table which is qualified by the schema name, but expdp can't find the table. What's wrong? The possible reasons could be:
- In the scope of view, the export user can't see the schema name.
- You went for the wrong database.
It's easy to check by this:
SQL> select table_name from all_tables where owner = 'HR';
no rows selected
You should make sure that the connected database is the right one before exporting tables.
OS Authentication
To use OS authentication without password to export data, you should beware of the following items.
ORACLE_SID
If you export data as sysdba in a multi-home or multi-instance environment, you should make sure that you set ORACLE_SID correctly.
[oracle@test ~]$ echo $ORACLE_SID
ERP2DB
To correct ORACLE_SID, you can do this before exporting:
[oracle@test ~]$ export ORACLE_SID=FIN2DB
[oracle@test ~]$ echo $ORACLE_SID
FIN2DB
ORACLE_PDB_SID
To export PDB as sysdba in a multi-tenant environment, you should additionally set an environment variable ORACLE_PDB_SID to your shell.
[oracle@test ~]$ export ORACLE_PDB_SID=ORCLPDB1
[oracle@test ~]$ echo $ORACLE_PDB_SID
ORCLPDB1