DataPump TABLES Export Fails WIth Error ORA-39194 (Doc ID 1304286.1)

Last updated on NOVEMBER 28, 2016

Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 11.2.0.2 - Release: 10.2 to 11.2
Information in this document applies to any platform.

Goal

You need to export a larger number of tables/partitions (i.e. hundreds), so you need to use the TABLES parameter in a DataPump parameter file. For example, the file (exp.par) may look like this.

directory=dpump_dir
dumpfile=dpump_dir:exp.dmp
logfile=dpump_dir:expdp.log
parallel=16
transportable=always
TABLES=(
USER1.TABLE1:P20080101,
USER1.TABLE1:P20080102,
USER1.TABLE1:P20080103,
....NOTE: entire list has not been included
USER1.TABLE1:P20081029,
USER1.TABLE1:P20081030,
USER1.TABLE1:P20081031
)

When you run DataPump Export using the parameter file, it fails with the following error:

$ expdp system/manager parfile=exp.par

Export: Release 11.2.0.1.0 - Production on Mon Feb 7 12:23:27 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORA-39194: Table mode jobs require the tables to be comma separated.

Further examination will show that the TABLES parameter is not able to be read properly from the DataPump Parameter file.

By enabling DataPump tracing using parameter TRACE=1FF0300, a detailed Data Pump Worker trace file is generated. By examining that trace file, you will see entries like the following:

KUPM:16:02:10.751: DBMS_DATAPUMP.METADATA_FILTER (hand, 'TABLE_FILTER', 'USER1.TABLE1:P20080101,USER1.TABLE1:P20080102,USER1.TABLE1:P20080103,
USER1.TABLE1:P20080104,USER1.TABLE1:P20080105,USER1.TABLE1:P2
KUPM:16:02:10.751: 0080106,USER1.TABLE1:P20080107,USER1.TABLE1:P20080108,USER1.TABLE1:P20080109,
USER1.TABLE1:P20080110,USER1.TABLE1:P20080111,USER1.TABLE1:P20080112,
USER1.TABLE1:P20080113,USER1
KUPM:16:02:10.751: .TABLE1:P20080114,USER1.TABLE1:P20080115,USER1.TABLE1:P20080116,
USER1.TABLE1:P20080117,USER1.TABLE1:P20080118,USER1.TABLE1:P20080119,
USER1.TABLE1:P20080120,USER1.TABLE1
KUPM:16:02:10.751: :P20080121,USER1.TABLE1:P20080122,USER1.TABLE1:P20080123,
USER1.TABLE1:P20080124,USER1.TABLE1:P20080125,USER1.TABLE1:P20080126,
USER1.TABLE1:P20080127,USER1.TABLE1:P2008012
KUPM:16:02:10.751: 8,USER1.TABLE1:P20080129,USER1.TABLE1:P20080130,USER1.T...', '');
...
KUPM:16:02:11.202: Remaining trimmed filter: >USER1.TABLE1:P20080904,USER1.TABLE1.TABLE1.TABLE1.TABLE1.TABLE1.TABLE1.
TABLE1.TABLE1.TABLE1.TABLE1.TABLE1.TAB<

KUPM:16:02:11.202: Element: USER1 Delimiter: .
KUPM:16:02:11.203: Element: TABLE1 Delimiter: :
KUPM:16:02:11.203: Element: P20080904 Delimiter: ,

In the entries timestamped 16:02:11, you can see that the value for the TABLES parameter is no longer correct.

This is evidence that the DataPump Parameter file is corrupted, where it is likely that the value for the TABLES parameter contains non-printing characters.

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms