Загрузка данных в удаленную БД с использованием sqlldr - PullRequest
11 голосов
/ 09 октября 2010

Я хотел загрузить данные в удаленную базу данных с помощью sqlldr.Я сделал это с помощью следующей команды

>sqlldr GANUKA/GANUKA@jdbc:oracle:thin:@172.21.0.180:1521:orcl control=D:\Work\CLSTMAS.ctl 
log=D:\Work\CLSTMAS.log

Но выдает следующую ошибку.

SQL*Loader-704: Internal error: ulconnect: OCIServerAttach [0]
ORA-12154: TNS:could not resolve the connect identifier specified

Нужна помощь

Ответы [ 2 ]

30 голосов
/ 09 октября 2010

Вы смешиваете два разных мира здесь.Одним из них является мир OCI, в котором живет sqlldr .Он ожидает имена экземпляров Oracle, определенные в TNSNAMES.ORA (или аналогичной службе).Другой мир - это мир JDBC, в котором используются идентификаторы соединения со словами типа «jdbc» или «thin».

Таким образом, у вас есть два варианта:

  • Если ваша среда имеетДля правильной настройки TNS вы должны изменить командную строку на что-то вроде sqlldr GANUKA/GANUKA@MONTY.CORP control=...

  • Если нет, вы можете использовать строку Easy Connect: sqlldr GANUKA/GANUKA@//172.21.0.180:1521/orcl control=...

0 голосов
/ 15 мая 2019

Мне пришлось использовать строку подключения тонкого клиента. Я не смог заставить работать решение @Codo.

sqlldr \'username/passwd@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.com)(PORT=1111)))(CONNECT_DATA=(SID=MYSIDE)(SERVER=DEDICATED)))\' control=loader.ctl data=data.csv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...