【发布时间】:2016-06-28 23:48:36
【问题描述】:
我正在尝试连接到 Oracle 数据库,并且我相信版本是 12c,我可以使用客户端(SQL Developer)连接到同一个数据库,但是在尝试使用我的 VBscript 连接时遇到问题想用作我的应用程序的一部分。
这是错误信息--
**Exception: OraOLEDB - ORA-01017: invalid username/password; logon denied**
这是我用来连接的脚本 --
Option Explicit
On Error Resume Next
'Dim strSQLQuery: strSQLQuery = "SELECT sysdate FROM dual"
Dim strDBDesc: strDBDesc = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = XXX)(PORT = XXX))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XXXX)))"
Dim strUserID: strUserID = "user"
Dim strPassword: strPassword = "pass"
Dim ADODBConnection: Set ADODBConnection = CreateObject("ADODB.Connection")
Dim strConnection
strConnection = "Provider=OraOLEDB.Oracle;Data Source=" & strDBDesc & _
";User ID=" & strUserID & ";Password=" & strPassword & ";"
ADODBConnection.Open strConnection
If Err <> 0 Then
WScript.Echo "An error occurred in Opening Connection: " & Err.Number & " " & Err.Description & " " & Err.Source
End If
Set ADODBConnection = Nothing
【问题讨论】:
-
我敢打赌,用户名和/或密码不同。要么是这样,要么你正试图从两个应用程序连接到不同的数据库。
-
我提交了一个编辑,以便在问题中标记 VBA,以便可以回答的人。我快速浏览了一下,调用的语法看起来是正确的。您可以尝试使用 strDBDesc 中的 Oracle 服务名称而不是整个连接描述。在 cmd 提示符下使用 TNSPING 检查您的客户端是否正确解析了 Oracle 服务名称。如果这不起作用,请尝试其他类型的 Provider 连接。
-
贾斯汀 - 我检查了我的凭据至少 25 次,它们看起来是对的!!
-
主机/端口/服务是否指向同一个数据库(例如,试图从不同的机器连接到“localhost”上的数据库)?由于您是从参数组成一个字符串,密码是否包含任何标点分隔符?
-
或尝试不同的提供商?
"Provider=msdaora;Data Source="vbaexpress.com/forum/…
标签: oracle vba database-connection connection-string oracle12c