
Oracle SQLチューニング(第12回)「スカラーサブクエリの理解と効率的なSQLの作成」(2/5)
今回は、スカラーサブクリの実行回数に関するお話です。
3.1.1.2 抽出されるデータは常に1件だけ有効である
スカラーサブクエリで抽出されるデータが1件を超過する場合、SQLは実行エラーが発生する。 理解を助けるためにテストを通じて調べてみる。
Script. スカラーサブクエリテスト用
次のテスト[1]でスカラーサブクエリのT2.C2はUnique値ではないので、T1.C2と結合を実行する場合、抽出データが2件以上である。 このような場合ORA-01427エラーが発生する。
テスト[1].
ORA-01427はスカラーサブクエリで抽出されるデータが2件以上である時発生するエラーメッセージである。 テスト[1]でエラーが発生しないようにするためにはスカラーサブクエリの抽出データが1件を超過してはいけない。 したがってスカラーサブクエリのT2.C2で抽出されるデータが1件を超過するならば、“ROWNUM <= 1”条件を追加すれば良い。
今回は、ここまでです。次回は、データが抽出されないことについてのお話です。では See You ^^