Я хочу смочь работать expdp
и impdp
путем прямого определения параметров соединения вместо имени TNS, которое находится в tnsnames.ora
. Действительно ли это возможно?
Вы можете указать все это в командной строке с помощью строки подключения вместо TNSName. Удалите пробелы из вашей записи TNS, которую вы использовали бы для подключения, вот пример, который работает с SQLPLUS ...
Вот как подключиться к локальной установке OracleXE в Windows:
sqlplus scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=xe)))
На * Nix вам может понадобиться цитировать запись, чтобы скобки не интерпретировались неправильно:
sqlplus 'scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=xe)))'
Вы можете попробовать строку EZCONNECT :
expdp userid=user/pw@//host:port/service-name
Вам понадобится параметр sqlnet.ora на стороне клиента, который включает EZCONNECT, например:
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)