1

我正在为 Oracle DB 使用带有嵌入式 Pro*C(版本:11.2.0.3.0)的 C++ 代码。我正在运行一个批量插入子句,如下所示:

insert int TBL1 (col1, col2) 
select a.col1, b.col2 from TBL2 a, TBL3 b
where a.col1 = :v and a.col2 = b.col2

我对要插入的一组记录运行此查询,并将值绑定:v到位。

但是,虽然可以插入一些记录,但有些记录失败了

ORA-01403: no data found

我从 中看到sqlca.sqlerrd[2],可以插入的行数。所以,我知道可以插入 M out N 条记录。现在,我想知道哪些记录确实失败了,所以我需要一个a.col1可能导致此失败的所有值列表的线索。有什么出路吗?任何线索或方向都会非常有帮助。

4

1 回答 1

0

这是一个有点长的评论。

您引用的错误是 PL/SQL 错误,记录在此处。这不是aninsert通常会产生的错误。

我的一个猜测是表有一个插入触发器,这个触发器导致了问题。

您的代码也可能位于更大的块中,并且块中的其他内容导致错误。

于 2015-08-11T12:23:48.800 回答