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 エラーであり、ここに記載されています。これは、が通常生成するエラーではありません。insert

私の推測では、テーブルに挿入トリガーがあり、このトリガーが問題を引き起こしているということです。

コードがより大きなブロックにあり、ブロック内の他の何かがエラーを引き起こしている可能性もあります。

于 2015-08-11T12:23:48.800 に答える