はじめに
シノニムの参照先テーブルが存在しない場合、ORA-01775: シノニム定義がループしています。のエラーが発生することがあります。
Oracleの現場を効率化する100の技
posted with amazlet at 15.05.25
鈴木 健吾 玉置 雄大 塩原 浩太 小林 修 大森 慎司 内村 友亮
技術評論社
売り上げランキング: 18,746
技術評論社
売り上げランキング: 18,746
実験
1.table01テーブルを作成します。
create table table01 ( id char(8), --ID name varchar(50), --名前 furigana varchar(50), --ふりがな seibetsu varchar(3), --性別 birthday char(8), --生年月日 primary key( id ) );
2.パブリックシノニムを作成します。
conn sys/pwd as sysdba; CREATE PUBLIC SYNONYM T1 FOR HOGE.TABLE01;
3.テーブルを削除します。
DROP TABLE HOGE.TABLE01;
4.削除したテーブルに対してシノニム経由で操作を行います。
SQL> delete from t1; delete from t1 * 行1でエラーが発生しました。: ORA-01775: シノニム定義がループしています。
対処方法
ORA-01775のエラーが発生した場合には、descコマンドなどを使用して参照先のテーブルが本当に存在するか確認すると良いです。