我正在尝试使用MS访问连接到Oracle数据库。 我继续收到以下错误消息:
ORA-12154:TSN-无法解析已连接的连接标识符
Oracle驱动程序OracleClient10g可以验证数据库服务器是否存在。
我的tsnnames.ora文件中有一个部分如下所示: UBASEP10G = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =(PROTOCOL = TCP)(HOST = bxxx-xxx.yyyy.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = UBASE) ) )
根据我尝试获取此错误的结果,我将其添加到sqlnet.ora文件中:
NAMES.DIRECTORY_PATH =(主机名,ONAMES,TNSNAMES,LDAP,EZCONNECT)
使用Windows ODBC驱动程序配置实用程序时,它会要求以下内容 以下信息 数据来源:MYSOURCE NAME TSN服务名称:UBASEP10G USERID:MYUSERID
任何建议?????
答案 0 :(得分:2)
我没有Access,但使用Excel 2007,我必须执行以下操作:
答案 1 :(得分:0)
尝试在TNSNAMES.ora文件中更改(CONNECT_DATA =(SERVICE_NAME = UBASE))到(CONNECT_DATA =(SID = UBASE))。
ServiceName和SID不一定相同,因此并不总是可互换的。
SERVICENAME参数引用数据库服务器上的listener.ora文件中指定的特定GLOBAL_DBNAME。它是服务器上实例的别名。您可以在引用相同SID的服务器上拥有多个服务名称。 SID参数指的是该服务器上的特定实例。
在客户端使用servicename的优点是DBA可以透明地将服务名称引用的实际实例更改为使用该名称的客户端。我可以在服务器listener.ora文件中使用它:
(SID_DESC =
(GLOBAL_DBNAME = THESERVICE)
(ORACLE_HOME = d:\oracle\10.2.0_DB)
(SID_NAME = SID1)
稍后,我可以通过切换listener.ora配置来更改正在引用的实际数据库:
(SID_DESC =
(GLOBAL_DBNAME = THESERVICE)
(ORACLE_HOME = d:\oracle\10.2.0_DB)
(SID_NAME = SID2)
并且没有人在客户端更聪明。客户端上的tnsnames.ora文件不需要进行任何更改。
答案 2 :(得分:0)
您可以通过SQL * Plus登录相关数据库吗?从具有工作连接的另一台机器(或DB服务器本身)执行此操作也很好。
如果是这样,请运行:
select value from v$parameter where name='service_names';
在您的TNSNAMES.ORA中,使用其中列出的其中一个值作为SERVICE_NAME。
在您的ODBC连接中,您只需要将TNS服务名称设置为您在上面使用的名称“UBASEP10G”
答案 3 :(得分:0)
让我们回到原点。打开命令窗口并连接到您的数据库:
sqlplus myuserid / mypassword @ UBASEP10G
这是否成功连接?
由于答案是否定的,您是否可以成功连接到此数据库? BQ是正确的,你的问题在于UBASE的服务名称。您需要确定服务器上的侦听器认为该数据库的名称是什么。你有权访问服务器吗?你能在服务器上执行命令“lsnrctl status”吗?这将告诉您向侦听器注册的服务,如下所示:
Services Summary...
Service "UBASE" has 1 instance(s).
Instance "UBASE", status READY, has 1 handler(s) for this service...
答案 4 :(得分:0)
尝试tnsping并报告结果。
为:
C:\>tnsping notreal.world
TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 29-OCT-2008 15:56:47
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
C:\oracle\ora92\network\admin\sqlnet.ora
TNS-03505: Failed to resolve name
好:
O:\>tnsping real.world
TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 29-OCT-2008 15:57:42
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
C:\oracle\ora92\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = DBSERVER.DOMAIN.COM)(PORT = 1521)) (LOAD_BALANCE = YES) (FAILOVER = YES))
(CONNECT_DATA = (SERVICE_NAME = REAL.WORLD)
(FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 10) (DELAY = 3))))
OK (40 msec)