3
sqlldr "xxxx/xxxx@YYYYYXXXX" control=/home/local/INTERNAL/xxxxx/Presc_SQLLDR_File/Presc_SQLLDR.ctl log=/home/local/INTERNAL/xxxxx/Presc_SQLLDR_File/Presc_log.log data=home/achand/Presc_SQLLDR_File/Presc_SQLLDR.ctl

每当我尝试执行 sqlldr 时,我都会遇到错误

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

我试过了tnsping YYYYYXXXX

我得到以下错误

TNS-03505:无法解析名称

tnsnames.ora 包含

DDCPPSD.WORLD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXYYY)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = YYYYYXXXX)
    )
  )
4

6 回答 6

5

此错误消息不言自明。您没有指定连接字符串,只是使用了用户名和密码。因此,Oracle 尝试连接到本地数据库。您必须指定username/password@connect_string,其中connect_string是客户端文件TNSNAMES.ORA中相应条目的名称(与 SQL Developer 中使用的连接字符串相同)。

于 2016-08-11T09:12:02.877 回答
1

如果您的tnsnames.ora别名被定义为DDCPPSD.WORLD并且您sqlnet.ora指定了任何默认域,WORLD那么您需要在使用别名时完全限定别名:

tnsping DDCPPSD.WORLD

sqlldr xxxx/xxxx@DDCPPSD.WORLD control=...

否则,默认域将被附加到非限定名称中,从而为您提供一个完全限定的名称,该名称在您的tnsnames.ora.

在文档中阅读有关此内容的更多信息。

于 2015-06-14T10:53:30.893 回答
1

您需要在 bat 文件中进行以下更改。

用户名/\"p@ssword\"@connect_string

享受。

于 2017-02-10T06:33:24.980 回答
1

我有同样的问题。如果您尝试将服务器连接到 TNS,您将看到无法连接。

telnet your_tns_ip your_tns_port

所以你需要允许你的服务器使用 TNS。至少那是我的问题。

于 2017-08-01T06:21:37.640 回答
0

更改密码后它对我有用。我在密码中使用“@”作为导致此问题的特殊字符之一。:(

于 2016-08-11T20:05:28.793 回答
0

我也遇到了这个错误

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

当我尝试调用这样的批处理时......

sqlldr "uuuu/pppp@SSS" 

我将批处理文件更改为:

set oracle_sid=SSS
sqlldr uuuu/pppp

更改后效果很好。

于 2019-03-19T15:01:20.773 回答