以下のように表示されます。
(日本語)
ORA-00913: 値の個数が多すぎます
(英語)
ORA-00913: too many values
発生パターン
このエラーは以下のような場合に発生します。
- INSERT文で、指定した値の個数が列数より多い
- エラー例1
- SQL> INSERT INTO M_USER (ID, NAME, AGE) VALUES ('99', 'Taro', 25, 'Osaka'); INSERT INTO M_USER (ID, NAME, AGE) VALUES ('99', 'Taro', 25, 'Osaka'); * 行1でエラーが発生しました。: ORA-00913: 値の個数が多すぎます。
値'Osaka' に対応する列が存在しないためエラーが発生しています。
- エラー例2
- SQL> SELECT * FROM M_ITEM WHERE CD IN (SELECT CD FROM M_ITEM2); SELECT * FROM M_ITEM WHERE CD IN (SELECT CD FROM M_ITEM2); * 行1でエラーが発生しました。: ORA-00913: 値の個数が多すぎます。
IN句に指定する値の上限は1000個です。それを超えるとORA-00913が発生します。
対処法
- INSERT句では列数に合わせた値を指定する
- IN句では、値が1000個以下となるようにする