Invalid QUERY in impdp

From: Tom Lanyon <tom_at_netspot.com.au>
Date: Sat, 24 Apr 2010 09:59:40 +0930
Message-Id: <2A1F8A45-87F2-4CF9-9534-CF66E8306C08_at_netspot.com.au>



Hi list,

I'm trying to datapump import a large table across a nework link. To improve performance, I was planning to run multiple impdp processes in parallel, on subsets of the table. The table is not partitioned and so I was going to use a QUERY filter to limit the scope, for example:

$ impdp 'scott/tiger' DIRECTORY=DATA_PUMP_DIR \

	NETWORK_LINK=remote_db \
	TABLE_EXISTS_ACTION=APPEND \
	CONTENT=DATA_ONLY \
	TABLES=SCOTT.EMP \
	'QUERY="WHERE id IN (SELECT id FROM (SELECT id, ROWNUM rnum FROM scott.emp ORDER BY id ASC) WHERE rnum >= 85000000 AND rnum < 170000000)"' 

... however, I receive the following error:

> Import: Release 10.2.0.4.0 - 64bit Production on Saturday, 24 April, 2010 9:52:05
>
> Copyright (c) 2003, 2007, Oracle. All rights reserved.
>
> Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing options
>
> UDI-00014: invalid value for parameter, 'schemas'

I assume it's not interpreting the QUERY parameter properly and is resorting to positional parameters (rather than named parameters) because I'm not using the "schemas" parameter anywhere.

I have tested and confirmed that the parameter is passed correctly (i.e. any shell quoting is correct) from the shell to impdp.

I have also tried placing the QUERY parameter in a file and using PARFILE=query.par to include it, effectively eliminating shell/syntax errors.

Anyone experienced this before and have any suggestions or solutions?

Regards,
Tom--
http://www.freelists.org/webpage/oracle-l Received on Fri Apr 23 2010 - 19:29:40 CDT

Original text of this message