Oracle DB 用户锁定 VBScript

Oracle DB user locks VBScript

我有一个简单的 VBScript 来测试与 Oracle 数据库的连接:

Dim strSQL, strDataSource, strUsername, strPassword

Set dbData = CreateObject("ADODB.Recordset")
Set dbConnection = CreateObject("ADODB.Connection")

dbConnection.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source="MyDB";User ID="MyUser";Password="MyPassword";"
dbConnection.Open

strSQL = "SELECT 1 FROM DUAL"
dbData.Open strSQL, dbConnection
If (dbData.EOF) Then
    WScript.Echo "There are No records to retrieve"
Else
    WScript.Echo "There are records to retrieve."
End If

dbData.Close
dbConnection.Close

脚本正在查询 DUAL table,如果检索到 1 行。这表明数据库在线。

问题是,有时我使用的用户帐户在数据库上被锁定,我从脚本中得到以下错误输出:

ORA-28000: the account is locked

有没有什么方法可以在 VBScript 中捕获这个错误?

因为我想在脚本中再添加一个Echo,以防用户被锁定

对我来说,这个有效:

Set con = CreateObject("ADODB.Connection")
con.provider = "OraOLEDB.Oracle"

On Error Resume Next
con.Open "Data Source=" & MyDB, "MyUser", "MyPassword"
If Err.Number <> 0 Then 
    WScript.Echo "Error: " & Err.Description
    WScript.Quit
End If
Err.Clear
On Error GoTo 0

WScript.Echo "Connection successful"
con.Close

输出:

Error: ORA-28000: the account is locked

您可以像

这样过滤错误
If InStr(1, Err.Description, "ORA-28000:", vbTextCompare) > 0 Then 
    WScript.Echo "Ask your Admin to unlook your account."
End If