我这次给您写信是因为我公司用来从 Oracle 数据库中检索信息的应用程序之一的 VBScript 似乎无法正常工作。以下是事实:
有部分代码执行以下操作:
sSql = "SELECT REQ_PAYMODE" & _ " FROM SYSADM.GBPRESTATIEGROEP" & _ " WHERE 1=1" & _ " AND SLEUTEL = " & sKeyPrestatiegroep Set oRSGBPrest = connADO.execute(sSql) If Not oRSGBPrest.EOF Then sRequestPaymodeKey = oRSGBPrest("REQ_PAYMODE") Else //error handling End If
使用 Oracle Statement Tracer (www.aboves.com) 我可以捕获具有相应值的相同语句:
从 SYSADM.GBPRESTATIEGROEP 中选择 REQ_PAYMODE,其中 1=1 且 SLEUTEL = 1572499
现在,VBScript 应该采用该值并执行另一个查询:
sSql = "SELECT PAM_CODE" & _ " FROM SYSADM.PAYMODES" & _ " WHERE 1=1" & _ " AND PAM_KEY = " & sRequestPaymodeKey Set oRSPaymodes = connADO.execute(sSql)
就在最后一行代码中,脚本抛出了一个错误,上面写着:
ORA-00936: 第 XXX 行缺少表达式 --> 设置 oRSPaymodes = connADO.execute(sSql) <--
这基本上意味着(3)中的查询不正确,这也意味着由于某种原因sRequestPaymodeKey为空。我无法确定这一点,因为这个失败的 sql 语句没有出现在语句跟踪器中,但这是我能找到的唯一解释。然而,最糟糕的是,当在 SQLDeveloper(值sRequestPaymodeKey的来源)上运行查询 (2) 时,它显示的行的值不是 null 或零。
我想不出这里可能发生的任何其他事情,也许这只是服务器的事情......不知道。
各位有什么建议吗?有什么方法可以实际调试 VBE 文件?
非常感谢您的帮助!