我正在为 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
绑定(bind)值。
然而,虽然可以插入一些记录,但有些记录失败了
ORA-01403: no data found
我从 sqlca.sqlerrd[2]
中看到,可以插入的行数。所以,我知道可以插入 N 条记录中的 M 条。现在,我想知道哪些记录失败了,所以我需要一条线索,列出可能导致此失败的所有 a.col1
值。
有什么办法吗?任何线索或方向都会非常有帮助。
最佳答案
评论有点长。
您引用的错误是 PL/SQL 错误,已记录 here .这不是 insert
通常会产生的错误。
我的一个猜测是该表有一个插入触发器,而这个触发器导致了问题。
也有可能是您的代码位于较大的 block 中,而 block 中的其他内容导致了错误。
关于c++ - Oracle Pro*C for insert with a sub select query causing ORA-01403 : no data found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941604/