0

我在同一台服务器上有两个具有相同名称和不同端口号的数据库。该tnxnames.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)))

我正在使用 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 中的数据库。

是否可以在连接字符串中提及端口号以访问同一服务器中具有相同名称的不同数据库?

我需要准备应用程序来访问克隆数据库而不是原始数据库。数据库之间只有端口号不同。

4

3 回答 3

1

您可能会发现这很有用:http: //www.connectionstrings.com/oracle

于 2009-08-24T16:44:32.110 回答
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.UK然后在命令行上尝试tnsping AAAA21.FSA.GOV.UK

于 2009-08-25T14:57:26.290 回答
0

尝试将您的端口号添加到以冒号分隔的服务器名称的末尾。

SERVER=SERVER_NAME:1521

我不是 Oracle 用户,但它适用于 MS SQL Server。

于 2009-08-24T16:08:48.267 回答