2010-03-14 36 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