2010-03-14 34 views
1

我想用SQL加载程序将一些数据加载到Oracle数据库。是否可以通过指定服务器使用DSN而不是TNS加载数据来调用它?用DSN调用SQL加载程序

现在我的命令行如下所示:sqlldr uesr/[email protected]_id...,我想用指向tns_id的DSN替换tns_id。 SQL Loader可以自己从DSN中找出TNS吗?

回答

0

数据库可以通过主机名,端口(通常为1521)和service/sid来识别(以Oracle术语来说)。

SQL加载程序将无法与DSN本身一起工作,但如果您可以使用Windows脚本或类似工具将主机/端口/服务信息蠕虫扫出,那么您将成为大多数情况下的方式。


有了一个完整的客户端安装和tnsnames.ora中做

tnsping dbname 

你应该得到类似

Attempting to contact 
(DESCRIPTION = (ENABLE=BROKEN) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = servname))) 
OK (30 msec) 

然后,您应该能够做到

sqlplus user/[email protected]:1521/servname 
+0

如何在命令行中对其进行格式化?我尝试了'sqlldr用户/密码@主机名',但那不起作用。 – Zack 2010-03-15 09:02:03

+0

用户名/密码@主机名:1521 /服务名称 – 2010-03-15 11:00:25

+0

我仍然得到'TNS:无法解析指定的连接标识符' – Zack 2010-03-15 11:40:06