なんだなんだ、オラクルでエラーが発生しています。今回発生した、このエラーは明らかに設計の問題で、根が深そうです。
ここではエラーの発生理由と回避方法(になるかならないかはケースバイケースですが)を紹介しておきます。
スポンサーリンク
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 = 'りんご' )