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)
)
)
答案 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.