使用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)
?