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
我有一个简单的 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