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のときはつけない。
- 参考にさせていただいたページ ⇒ でびび » Blog Archive » OracleでANSI SQL結合構文が正常に動作しないケース