我在同一台服务器上有两个数据库,它们具有相同的名称和不同的端口号。 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中的数据库。
是否可以在连接字符串中提及端口号以访问具有相同名称且位于同一服务器中的不同数据库?
我需要准备应用程序来访问克隆数据库而不是原始数据库。数据库之间只有端口号不同。
答案 0 :(得分:1)
您可能会觉得这很有用:http://www.connectionstrings.com/oracle
答案 1 :(得分:0)
尝试将端口号添加到以冒号分隔的服务器名称的末尾。
SERVER=SERVER_NAME:1521
我不是Oracle用户,但这适用于MS SQL Server。
答案 2 :(得分: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