views:

508

answers:

2

I want to be able to run expdp and impdp onto a machine by directly specifying the connection parameters instead of a tns name that resides in tnsnames.ora. Is this possible?

+1  A: 

You may be able to specify it all on the command line with a Connection String instead of a TNSName. Remove the whitespace from your TNS entry you would have used to connect, here is an example that works with SQLPLUS...

Here is how to connect to a local OracleXE install on Windows:

sqlplus scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=xe)))

On *Nix you may need to quote the entry so the parens aren't interpreted incorrectly:

    sqlplus 'scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=xe)))'
David Mann
A: 

You might try an EZCONNECT string:

expdp userid=user/pw@//host:port/service-name

You will need a sqlnet.ora parameter on the client side that includes EZCONNECT, e.g.:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
DCookie