sql - “SQL 数据类型超出范围”如果不是 rs.EOF THEN
问题描述
IF NOT rs.EOF THEN
我的脚本中的语句有问题。错误提示“[ORACLE][ODBC] SQL 数据类型超出范围 <-27>。
我想执行以下可以正常工作几年的查询。我认为该错误是在将 Oracle 数据库更新到 19c 版本后发生的。但我不太确定。
qry_pkv = "SELECT DISTINCT MANDT, PATH301 FROM NC301B " &_
"WHERE (EDIPROC like 'P30_')" &_
"AND (LF301M > 0) " & _
"AND (MANDT = "& mdt &")" &_
"AND (PATH301 LIKE '%\PKV_DAV\%') " &_
"OR (PATH301 LIKE '%\pkv_dav\%') " &_
"ORDER BY MANDT ASC; "
cn.Open connectionString ' Verbindung zum SQL Server wird hergestellt
If Err.Number <> 0 Then ' Prüfung der Verbindung zum SQL Server.
Call CheckError ("DB Verbindungsfehler") ' Ergebnis wird an die Funktion CheckError übergeben.
End If
On Error Goto 0
If cn.State <> adStateOpen Then ' Prüft ob Verbindung geöffnet ist.
WScript.Echo "Verbindung zur Datenbank kann nicht aufgebaut werden." ' Ausgabe im Fehlerfall (Fenster)
RC = 1 ' ReturnCode wird auf bei Verbindungsfehlern auf "1" gesetzt.
Zeile = "Verbindung zur Datenbank kann nicht aufgebaut werden." ' Ergebnis wird in LOG-Datei geschrieben.
Call Writelog (Zeile) ' Prozedur "WriteLog" wird aufgerufen
Call Ende ' Prozedur "Ende" wird aufgerufen.
End If
rs.open qry_pkv, cn, 3
Zeile = "Skriptausfuehrung wird gestartet."
Call Trace (3,"I",Zeile)
If NOT rs.EOF THEN
rs.MoveFirst
ReDim Preserve AusgabeDir_pkv(0)
i=0
Zeile = "PKV_DAV Verzeichnisse" ' Überschrift für LOG-Datei.
Call Trace (3,"@",Zeile) ' Überschrift wird in LOG-Datei geschrieben.
Do While Not rs.EOF ' Schleife für durchsuchen der Datenbank.
ReDim Preserve AusgabeDir_pkv(i)
ReDim Preserve MANDT_pkv(i)
AusgabeDir_pkv(i) = rs("PATH301") ' Ausgabeverzeichnis wird in Variable gespeichert und verarbeitet.
MANDT_pkv(i) = rs("MANDT")
Zeile = "Verzeichnis in Bearbeitung - " & "Mandant: " & MANDT_pkv(i) & " Pfad: " & AusgabeDir_pkv(i) ' Status der Verarbeitung.
Call Writelog (Zeile) ' Status wird in LOG-Datei geschrieben.
Call loeschen_pkv(AusgabeDir_pkv(i)) ' Funktion löschen wird aufgerufen um Verzeichnis zu leeren wenn älter n Tage.
i=i+1
rs.MoveNext
Loop
ELSE
Zeile = "PKV_DAV Verzeichnisse" ' Ergebnis wird in LOG-Datei geschrieben.
Call Trace (3,"@",Zeile) ' Prozedur "WriteLog" wird aufgerufen
Zeile = "Keine PKV_DAV Verzeichnisse vorhanden." ' Ergebnis wird in LOG-Datei geschrieben.
Call Trace (3,"-",Zeile) ' Prozedur "WriteLog" wird aufgerufen
End If
cn.close
解决方案
推荐阅读
- android - Unity 音频源在 Android 平台上延迟?
- java - 为什么 Truffle DSL 在添加 @Specialization 注解时会出错?
- django - django admin 中的自定义模型操作/功能
- python - 二部图中的一个完美匹配分解图
- javascript - 如何在 Javascript 中使用 XLSX 库从特定行解析 Excel 文件
- android - 从 Chrome 发送意图在 Chrome 中打开应用程序
- javascript - 为什么加载完成后状态不更新?
- django - 如何在断开连接之前在 django 频道上向所有用户发送消息
- android - Kotlin 中按钮状态的不同背景
- javascript - antd protable 无法将语言更改为英文