2016-07-19 172 views
1

我使用的是ADODB连接到同一个ADODB Oracle数据库使用Excel VBA

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

我已经使用这个连接字符串

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

,我得到

找不到[微软] [ODBC驱动程序管理器]数据源名称的默认驱动程序指定

+0

在我有限的经验中,这意味着您需要编辑tnsnames.ora文件以包含或修复此连接。 –

+0

可能在http://www.connectionstrings.com/找到帮助 – OldProgrammer

回答

1

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

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

+0

那么我应该使用什么样的连接字符串模式? – casper

+0

刚刚必须使用ConnectionString = _ “DRIVER = {Oracle in OraClient11g_home1};” &_ “DBQ = {{from tnsnames.ora}}; UID = xxxxx; PWD = xxxx;” – casper