使用sqlldr将数据加载到远程数据库

时间:2010-10-09 03:49:33

标签: oracle

我想使用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 个答案:

答案 0 :(得分:29)

你在这里混淆了两个不同的世界。一个是 sqlldr 所在的OCI世界。它期望在TNSNAMES.ORA(或类似服务)中定义Oracle实例名称。另一个世界是JDBC世界,它使用带有“jdbc”或“thin”等字的连接标识符。

所以你有两个选择:

  • 如果您的环境具有正确的TNS设置,则必须将命令行更改为sqlldr GANUKA/GANUKA@MONTY.CORP control=...

  • 如果没有,您可以使用Easy Connect字符串:sqlldr GANUKA/GANUKA@//172.21.0.180:1521/orcl control=...

答案 1 :(得分:0)

我最终不得不使用瘦客户端连接字符串。我无法使用@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