ORACLE機能 エラー

[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機能, エラー

執筆者:


comment

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

関連記事

ORACLE

[SQL] 縦持ちのテーブルから横持ちのデータとして検索する

縦持ちのテーブルから横持ちのデータとして検索するサンプルです。 サンプル 以下のような縦持ちのテーブルをサンプルとします ...
ORACLE

[V$表] セッションの情報を取得する(V$SESSION)

セッションの情報を参照するには、V$SESSIONビューを参照します。 V$SESSIONの定義 V$SESSIONの定 ...
ORACLE

[V$表] 実行されたSQLのSQL文を取得する(V$SQLTEXT、V$SQLTEXT_WITH_NEWLINES)

実行されたSQLのSQL文を取得するには、 V$SQLTEXT、V$SQLTEXT_WITH_NEWLINESビューを参 ...
ORACLE

[ORACLE] シングルクォーテーションを出力する

オラクルでシングルクォーテーションを出力する方法2パターンです。 SQL文で文字列を出力するには、シングルクォーテーショ ...
ORACLE

[ORACLE] 日付フォーマットに日本語の「年月日」を使用する

日付フォーマットに日本語の「年月日」を使用するサンプルです。 サンプル 例)現在日時を「YYYY年MM月DD日」形式で表 ...

スポンサーリンク