【发布时间】:2017-11-07 15:47:36
【问题描述】:
我有一些 Excel 宏 VBA 代码:
Set dbconn = New ADODB.Connection
dbconn.ConnectionString = "DSN=XE_DSN;"
dbconn.Open
“XE_DSN”系统DNS连接在ODBC驱动配置面板成功。
我有下一条带有宏的错误消息:
[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified.
我可以使用 PL/SQL 连接到 Oracle XE(我知道 PL/SQL 不使用名为“XE_DNS”的系统 DNS)但我无法使用宏连接。
你能帮我解释为什么吗?
【问题讨论】:
-
我发现传递整个连接字符串而不是 DSN 通常更适合从 Excel ADO 连接到 Oracle。
-
@ScottHoltzman 我有与此代码相同的错误消息:dbconn.Open "PROVIDER=OraOLEDB.Oracle;DATA SOURCE=XE;USER ID=SYSTEM;PASSWORD=mypassword;"你想过这个吗?
-
我不确定它是否完全相关,但这是我为最近的一个项目所做的:
Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXL-DB01)(PORT=nnnn))(CONNECT_DATA=(SERVICE_NAME=myEnv))); uid=U_I_D; pwd=P_W_D; -
我交换了主机、端口、用户ID、密码、服务名。不,它不适用于此错误消息:“ORA-06413:连接未打开”。我认为问题在于“Microsoft ODBC for Oracle”提供程序。我认为提供商在我的系统 DNS 中运行良好,只是它无法识别服务名称。 TNSNAMES.ORA 文件看起来不错。如果我在 TNSNAMES.ORA 中交换某些参数,PLSQL 将无法连接到 Oracle。
-
愿力量与你同在。甲骨文不好玩。
标签: oracle excel dns system vba