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

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

関連記事

ORACLE

[ORACLE] 表領域の使用量を確認する

表領域のサイズ、使用量、空き容量、使用割合を確認するSQLです。 サンプル 例)表領域のサイズ、使用量、空き容量、使用割 ...
ORACLE

[V$表] 実行されたSQLの情報を取得する(V$SQL)

実行されたSQLの情報を参照するには、V$SQLビューを参照します。 V$SQLの定義 V$SQLの定義です。 【V$S ...
ORACLE

[データディクショナリ] コメント情報を取得する

テーブルやビューに付けられたコメントを参照するには、 TAB_COMMENTSデータディクショナリビューを参照します。 ...
ORACLE

[SQL*Plus] DBMS_OUTPUTからの出力を有効/無効にする(set serveroutput)

DBMS_OUTPUTからの出力を有効/無効にするには、「serveroutput」システム変数を使用します。 構文 ( ...
ORACLE

[ORACLE] 排他ロックを行う(for update nowait)

排他ロックをかけるには、for update または、for update nowaitを使います。 構文 排他ロックに ...

スポンサーリンク