2009-08-24 138 views
0

我有兩個數據庫在同一臺服務器上,具有相同的名稱和不同的端口號。該tnxnames.ora進入樣子(其實一個數據庫是另一個的克隆。)通過VBScript連接到Oracle

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

我使用MS-Access開發的應用程序和使用ADODB連接訪問服務器。我嘗試從服務器訪問數據。 我的連接字符串的樣子:

sConStr = "Driver={oracle in oraclient10g_home1};SERVER=SERVER_NAME;DBQ=AAAA;UID=username;Pwd=pswd" 

Set oConn = New ADODB.Connection 

oConn.connectionstring = sConStr 
oConn.open 

我的問題是,我始終ADODB連接數據庫的端口號1530我不能將其設置在引黃字符串來訪問數據庫中的端口1521

是否可以在連接字符串中提及端口號來訪問具有相同名稱且位於同一服務器中的不同數據庫?

我需要準備應用程序來訪問克隆的數據庫而不是原來的數據庫。數據庫之間的端口號不同。

+0

嗨,我設法解決這個問題。有一個不同的連接字符串可用於ADODB連接。 DNS較少的連接。我使用了這個,並且提到了在同一個連接字符串本身中的tnsnames條目,它可以幫助我連接到數據庫。 – chinnagaja 2009-08-26 11:01:15

回答

1

你會發現這個有用:http://www.connectionstrings.com/oracle

+0

絕對的,connectionstrings.com是你的朋友! – 2009-08-24 18:12:33

+0

我已經檢查了..我使用的是「Oracle in OraClient10g」驅動程序,並沒有列出相同的。我接受OraHome92中的Oracle(Driver = {Oracle in OraHome92}; Dbq = myTNSServiceName; Uid = myUsername; Pwd = myPassword;)設置與我的類似,但在我的情況下,myTNSServiceName對於兩個數據庫都是相同的。 – chinnagaja 2009-08-25 05:45:35

+0

從這個網站,我得到了DNS更少的連接字符串,我能夠實現我所需要的。 – chinnagaja 2009-08-26 11:02:06

0

嘗試將您的端口號添加到由冒號分隔的服務器名稱末尾。

SERVER=SERVER_NAME:1521 

我不是Oracle用戶,但這將與MS SQL Server一起工作。

+0

此設置需要服務器名稱,但不能識別端口號! – chinnagaja 2009-08-25 05:40:53

0

這可能是一個愚蠢的問題...但都是這些條目在你的tnsnames.ora?

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

請嘗試更改它,以便每個名稱都是唯一的。

AAAA.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1530))) 
(CONNECT_DATA = (SID = AAAA))) 


AA21.FSA.GOV.UK = 
(DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = SERVERNAME)(Port = 1521))) 
(CONNECT_DATA = (SID = AAAA))) 

然後在命令行上嘗試tnsping AAAA.FSA.GOV.UKtnsping AAAA21.FSA.GOV.UK

+0

我也試過。但是ADODB連接始終連接到第一個數據庫,因爲兩個數據庫都具有相同的用戶名和密碼。我不確定端口是否被ADODB連接識別。 – chinnagaja 2009-08-26 10:59:25