我也是刚刚接触到 Oracle,现在遇到一个问题,就是一个 MFC 应用程序通过 ado 向 Oracle 里 insert 数据。
数据规模差不多是在百万行,但是到在大约第 10 万行到第 11 万行的时候,就会有个插入出错,Oracle 向我抛出的错误代码是 3092,查了下 3092 是语法错误,但是我在 MFC 应用程序中打上断点取出这行 insert 的语句放到 PL/SQL 中单独执行是没有任何问题的。
查了下 Oracle 的机制,我用如下语句查询:
select v$sql.SQL_TEXT,v$sql.MODULE,v$sql.first_load_time
from v$sql
where v$sql.MODULE = 'app.exe'
order by first_load_time desc;
但是用这种方法能查到的 SQL 语句都是执行成功的,执行失败的语句查不到。我断点处出现的 SQL 语句根本就没出现在上述 SQL 的执行结果里面。
所以我想问下,如何才能在 Oracle 里查询曾经执行失败的语句?