潜伏バグからのロングフリーズ

Javaっぽいエンジニアの徒然草

マルチテーブル・インサートにてORA-24335エラーが発生

【マルチテーブル・インサート構文】

insert all

  into XXX_TBL (id, name, value) values ('001', 'AAAAA', 1)

  into YYY_TBL (id, name, value) values ('002', 'BBBBB', 2)

select * from dual;

 

基本的には普通のinsert文と同じ書き方。

異なる点は下記3つ。

・insertとintoの間にallが入る

・intoが複数並ぶ

・最後にselect * from dualが入る

 

マルチテーブル・インサートにて、

大量にINSERTを実施しようとしたところ、[ORA-24335]エラーが発生。

ORA-24335: 1000列以上はサポートされていません。

 

VALUES(?)のバインド変数が1000個を越えたのが原因のよう。

IN句で指定可能な数の限界が1000個であるのと同様っぽい。