如何使用包含分号的密码连接到Oracle

问题描述 投票:0回答:1

我正在使用VBA连接到Oracle数据库。除非密码包含分号,否则一切正常。

这是我连接数据库的方式:

Dim cn As ADODB.Connection
Dim strCon As String

Set cn = New ADODB.Connection

strCon = "Driver={Oracle in OracleClient32_home1};Dbq=" & tnsName & ";" & _
          "Uid=" & user & "; Pwd=" & password & ";"

'Open the connection
cn.Open strCon

如果密码类似于“ pass;word”,则登录失败,提示密码错误。

我尝试过:

  • 将花括号括起来:

    Pwd={" & password & "};"
    

    此错误返回无效的字符串或缓冲区长度。

  • 用双引号引起来:

    Pwd=" & Chr(34) & password & Chr(34) & ";"
    

    这也将无效的字符串或缓冲区长度作为错误重新设置。

excel vba oracle odbc database-connection
1个回答
0
投票

尝试这个:

strCon = "Driver={Oracle in OracleClient32_home1};Dbq=" & tnsName
cn.Open strCon, user, password 

或使用OdbcConnectionStringBuilder(语法可能是错误的)

Dim strCon As New OdbcConnectionStringBuilder
strCon.Driver = "Oracle in OracleClient32_home1"

strCon.Add("Dbq", tnsName)
strCon.Add("Uid", user)
strCon.Add("Pwd", password)

cn.Open strCon.ToString()

DbConnectionStringBuilder可能是另一个选择

© www.soinside.com 2019 - 2024. All rights reserved.