ОШИБКА 704 & 12154 при подключении sqlloader к серверу - PullRequest
0 голосов
/ 04 июня 2011

У меня есть база данных Oracle, основанная на сервере, и я хочу импортировать данные в таблицы на сервере.Я пытаюсь использовать sqlloadr (sqlldr) для вставки всех данных в базу данных oracle, которая находится на localhost, и в этом случае проблем нет, но проблема возникает, когда я пытаюсь подключить веб-сервер (не localhost).

Команда, которую я использовал в случае localhost:

sqlldr <usrname>/<password> control=table.ctl log=table.log ERRORS=25000

и ниже, относится к веб-серверу

sqlldr <usrname>/<password>@LABSERVER control=table.ctl log=table.log ERRORS=25000

, где я создал tnsnames.ora какследующее:

LABSERVER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = <hostaddress>)(Port = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = <servicename>)
    )
  )

но я получил эту ошибку:

SQL*Loader-704: Internal error: ulconnect:OCIServerAttache [0]

ORA-12154: TNS:could not resolve the connect identifier specified

Любая идея будет оценена

Ответы [ 5 ]

1 голос
/ 03 января 2017

У нас была похожая проблема, и у нас не было привилегий для изменения tnsnames.ora на локальном компьютере, поэтому нам пришлось указать службу в командной строке, например:

sqlldr userid = имя пользователя / пароль @ \ "(ОПИСАНИЕ = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = myDBHost) (PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SID = MYDBSID ))) \ "Control = 'mytable.ldr' Log = 'mytable.log'

благодаря https://hs2n.wordpress.com/2012/06/12/oracle-using-sqlplus-and-sqlldr-on-databases-without-tnsnames-entry/#comment-700

1 голос
/ 04 июня 2011

", где я создал tnsnames.ora, который выглядит следующим образом:"

Это означает, что вы опубликовали файл TNSNAMES.ORA с сервера базы данных.

Помните, что вам также нужен файл TNSNAMES.ORA на клиенте.Это тоже правильно настроено?

0 голосов
/ 12 июня 2015

если ваш пароль имеет символ @, утилита sqlldr не будет работать, смените пароль, он будет работать http://www -01.ibm.com / поддержка / docview.wss? UID = swg21347615

0 голосов
/ 10 ноября 2014

Для тех, кто, как и я, нашел эту тему.

Одна вещь, которую нужно проверить: права доступа к файлу tnsnames.ora.

Для клиентов на одном компьютере, которые еще не входят в группу администраторов баз данных, а также с правильно заданными ORACLE_HOME и ORACLE_BIN, сообщалось об ошибке субъекта.Права доступа к файлу tnsnames.ora исключают возможность чтения мира;поскольку файл tnsnames.ora не может быть прочитан, 704/12514 выброшено, поскольку имя службы не может быть разрешено.

Из командной строки: chmod 644 $ ORACLE_HOME / network / admin / tnsnames.ora

0 голосов
/ 04 июня 2011

По сути, эта ошибка говорит о том, что, учитывая хост, порт, протокол и имя_службы, клиент не смог найти прослушивающую службу Oracle.Убедитесь, что ваше имя хоста является действительным (например, вы можете пропинговать его), что слушатель прослушивает 1521, и что имя_сервиса в базе данных сервера действительно является именем, которое вы указали.Вы можете проверить это, введя эту команду в sqlplus:

SHOW PARAMETER service_names

, которая сообщает вам, что база данных регистрирует себя как в прослушивателе.

...