使用excel VBA连接到带有ADODB的Oracle数据库

我在ADODB中使用这个连接string模式

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

我也尝试使用这个连接string

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

我得到运行时错误

[Microsoft] [ODBC驱动程序pipe理器]未find数据源名称指定的没有默认驱动程序

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

我不知道OLEDB提供者是否支持Easy Connect命名方法。 你有没有在你的sqlnet.ora文件中指定NAMES.DIRECTORY_PATH=(tnsnames, ezconnect)