使用excel VBA

时间:2016-07-19 20:33:52

标签: excel oracle vba excel-vba oracle11g

我使用此连接字符串模式与ADODB

Set oConn = New ADODB.Connection
oConn.ConnectionString = "User ID=USERNAME;Password=PW;Data Source=xxxxxxx.db.yyyy.com:port;Provider=OraOLEDB.Oracle; "
oConn.ConnectionTimeout = 30
oConn.Open
rs.CursorType = adOpenForwardOnly

当我打开连接时,我会收到运行时错误

  

ORA-12504:TNS:听众未在CONNECT_DATA中获得SERVICE_NAME

我也尝试过使用此连接字符串

"ODBC;DRIVER={Oracle in OraClient11g_home2};" & _
"DBQ=" & inputHost & ";UID=" & inputUser & ";PWD=" & inputPassword & ";" & _
"HOST=" & inputHost & ";PORT=1521;DB=" & inputHost & ";" & _
"DefaultIsolationLevel=READUNCOMMITTED"

我得到了运行时错误

  

[Microsoft] [ODBC驱动程序管理器]未找到数据源名称未指定默认驱动程序

1 个答案:

答案 0 :(得分:1)

我认为Data Source=xxxxxxx.db.yyyy.com:port是问题所在。您应该提供文件tnsnames.ora中定义的TNS别名,而不是" ServerName.Domain:Port"。

我不知道OLEDB提供程序是否支持Easy Connect命名方法。您是否在NAMES.DIRECTORY_PATH=(tnsnames, ezconnect)文件中指定了sqlnet.ora