ORA-01427: 単一副問い合わせにより2つ以上の行が戻されます

Pocket

なんだなんだ、オラクルでエラーが発生しています。今回発生した、このエラーは明らかに設計の問題で、根が深そうです。

ここではエラーの発生理由と回避方法(になるかならないかはケースバイケースですが)を紹介しておきます。

スポンサーリンク

ORA-01427: 単一副問い合わせにより2つ以上の行が戻されます

英語では「single-row subquery returns more than one row」とエラー表示されます。

で、発生する原因ですが、次のようなSQLで副問い合わせ部分が複数レコードが戻ってくるようなときに、このオラクルエラーが発生します。

早い話が、エラー内容そのままです。

select
    sysdate
   , (
      select
         col3
      from
         table1
      where
           col1 = '食品'
       and col2 = 'りんご'
   )
from
   dual

複数レコード取得できても問題ないケースであれば、次のように修正できます。

先のSQLも次のSQLも副問い合わせである必要があるとは思えませんが・・・

select
    sysdate
   ,col3
from
    (
      select
         col3
      from
         table1
      where
           col1 = '食品'
       and col2 = 'りんご'
   )

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *