揮発性のメモ2

http://d.hatena.ne.jp/iww/

表の結合

ORA-01445: キー保存表なしに結合ビューからROWID を選択できません。

表を外部結合して列数が1050を超えるとエラーになる話。


ORA-01445が出るパターン

SELECT hoge.*, piyo.* FROM hoge LEFT JOIN piyo ON hoge.id = piyo.id;

Oracle語に変換すれば出なくなる

SELECT hoge.*, piyo.* FROM hoge,piyo WHERE hoge.id = piyo.id (+);

(+)はあってもなくてもいい方につける。具体的にはLEFT JOINのときは後ろの方につける。INNER JOINのときはつけない。