【问题标题】:VBA Excel Macro Oracle XE connectionVBA Excel 宏 Oracle XE 连接
【发布时间】: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


【解决方案1】:

连接字符串错误。

正确的连接字符串取决于您使用的驱动程序。通常它可以是“ODBC”或“OLE DB 提供程序”

看起来您正在使用 ODBC。 ODBC 驱动程序可以来自 Microsoft。即Microsoft ODBC for Oracle 或来自 Oracle(如 Oracle in OraClient11g_home1,取决于您的版本)。

连接字符串应该是以下之一:

dbconn.ConnectionString = "Driver={Oracle in OraClient11g_home1};Uid=" & <username> & ";Pwd=" & <password> & ";DBQ=XE_DSN"

dbconn.ConnectionString = "Driver={Microsoft ODBC for Oracle};Uid=" & <username> & ";Pwd=" & <password> & ";Server=XE_DSN"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 2014-12-06
    • 1970-01-01
    • 2021-10-18
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多