SQL * Loader-704和ORA-12154

时间:2015-06-13 14:47:06

标签: sql-loader oracle12c tnsping

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)
    )
  )

6 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

如果您的tnsnames.ora别名被定义为DDCPPSD.WORLD而您的sqlnet.ora指定了除WORLD之外的任何内容的默认域名,则您需要在使用时完全限定别名:

tnsping DDCPPSD.WORLD

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

否则,默认域名将附加到非限定名称,为您提供tnsnames.ora中不存在的完全限定名称。

详细了解此in the documentation

答案 2 :(得分:1)

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

telnet your_tns_ip your_tns_port

因此您需要将服务器置于TNS。这至少是我的问题。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

<强>的用户名/ \ “P @提供ssword \” @ CONNECT_STRING

享受。

答案 5 :(得分:0)

I came across this error too

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

When I tryed call a batch like this...

sqlldr "uuuu/pppp@SSS" 

I changed the batch file for:

set oracle_sid=SSS
sqlldr uuuu/pppp

After the change worked well.