ORACLE機能 ORAエラー

[ORAエラー] ORA-01427: 単一行副問合せにより2つ以上の行が戻されます

投稿日:

以下のように表示されます。

(日本語)
ORA-01427: 単一行副問合せにより2つ以上の行が戻されます
(英語)
ORA-01427: single-row subquery returns more than one row

発生パターン

このエラーは以下のような場合に発生します。

  • サブクエリで、1つのデータのみ検索される想定の所に複数のデータが検索された。
エラー例1
SQL> select * from m_test1 where col1 = (select col99 from m_test2); select * from m_test1 where col1 = (select col99 from m_test2); * 行1でエラーが発生しました。: ORA-01427: 単一行副問合せにより2つ以上の行が戻されます

= を IN にすればエラーとはなりません。

エラー例2
SQL> select 'AAA', (select col1 from m_test) from dual; select 'AAA', (select col1 from m_test) from dual; * 行1でエラーが発生しました。: ORA-01427: 単一行副問合せにより2つ以上の行が戻されます

対処法

  • サブクエリの検索条件を見直して1つのデータのみ返すようにSQLを修正する
  • サブクエリを「=」でつないでいる箇所を「IN」に変更する
     (サブクエリが複数検索されるのが正しい場合)

スポンサーリンク

スポンサーリンク

-ORACLE機能, ORAエラー

執筆者:



comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサーリンク