0

不幸的是,我正在开发一个旧的 VB6 应用程序,该应用程序正在构建一个巨大的(11902 个字符)即席 SQL 语句,然后将其传递给我的 DBConnection 的 GetRecordSet() 方法。该应用程序正在使用 OraOLEDB.Oracle 提供程序。但是,当执行 GetRecordSet() 方法时,出现以下错误:

ORA-00907: 缺少右括号

现在,我已经获取了传递给 GetRecordSet() 函数的字符串的内容,并对其进行了彻底的检查,并且没有遗漏括号。此外,我能够在 Oracle SQL Developer 和 SQL*Plus 中毫无困难地执行 select 语句。所以我确信这个字符串在语法上是正确的。

我开始怀疑提供程序中发生了一些可疑的事情 - 也许字符串太长并且在某处被截断?

有谁能帮帮我吗?

谢谢,史蒂夫

4

1 回答 1

1

检查 oracle 跟踪文件。首先将会话设置为跟踪模式: Alter session set sql_trace = true;

并在同一会话中运行您的查询。您可以在 user_dump_dest 指向的目录中找到数据库服务器上的跟踪文件。

如果查询完全在跟踪文件中,则它已完全被数据库接收。

于 2011-02-02T21:06:56.843 回答