Allen 2009-06-12 12587 20 0 0 0

ORA-01775错误与Oracle同义名(synonym)

  使用synonym,以便于管理或者权限控制,但有时也会出现错误,需要特别注意。
  今天我们的数据库就出现了错误:ORA-01775: 同义词的循环链
  经过检查找到原因,原来同义名指向的表被删除了,所以报错。但在实际测试过程中,未能重现这个错误,删除表后,使用同义名时,只是提示“ORA-00980: 同义词转换不再有效
”,原因不明。

  在检查的过程中,在网上查了资料,并进行了测试,找到了这个错误产生的主要原因,在这里记录下。
  其实,导致ORA-01775: 同义词的循环链的原因很简单,主要有以下两点:
  1,有循环定义的同义名。
  2,实际的表或视图不存在。

  测试过程如下:

  第一种情况:有循环定义的同义名。

SQL> CONN SCOTT/[email protected]
已连接。

SQL> CREATE TABLE SCOTT.TEST1
  2  (ID INT,
  3  NAME VARCHAR(10)
  4  )
  5  TABLESPACE USERS;

表已创建。

SQL> INSERT INTO SCOTT.TEST1 VALUES (1,^AAA^);

已创建 1 行。

SQL> SELECT * FROM TEST1;

        ID NAME
---------- ----------
         1 AAA
  
SQL> CONN SCOTT/[email protected]
已连接。

SQL> create or replace synonym t1 for scott.test1;

同义词已创建。

SQL> create or replace synonym t2 for t1;

同义词已创建。

SQL> select * from t1;

        ID NAME
---------- ----------
         1 AAA

SQL> create or replace synonym t1 for t2;

同义词已创建。

SQL> select * from t1;
select * from t1
              *
ERROR 位于第 1 行:
ORA-01775: 同义词的循环链


---这时候我们查看一下实际存在的同义名:

SQL> col owner format a10;
SQL> col synonym format a10;
SQL> col table_owner format a15;
SQL> col table_name format a10;

SQL> select owner,synonym_name,table_owner,table_name from all_synonyms where synonym_name=^T1^ or synonym_name=^T2^;

OWNER      SYNONYM_NAME                   TABLE_OWNER     TABLE_NAME
---------- ------------------------------ --------------- ----------
SYSTEM     T1                             SYSTEM          T2
SYSTEM     T2                             SYSTEM          T1

  这时候我们发现同义名T1,T2,只是互相关联,但并未关联到表Scott.test1上。(原因是我们创建时使用了replace,所以执行"create or replace synonym t1 for t2;",就将原来执行的"create or replace synonym t1 for scott.test1;"覆盖了)
  但找不到实际的表,所以提示错误。

  第二种情况示例:实际的表或视图不存在。

---首先删除已经建的同义名T1,T2
SQL> drop synonym t1;

同义词已丢弃。

SQL> drop synonym t2;

同义词已丢弃。

SQL> select owner,synonym_name,table_owner,table_name from all_synonyms where synonym_name=^T1^ or synonym_name=^T2^;

未选定行

---重新创建同义名T1,关联到表Scott.test1
SQL> create or replace synonym t1 for scott.test1;

同义词已创建。

SQL> select * from t1;

        ID NAME
---------- ----------
         1 AAA

---删除表
SQL> drop table scott.test1;

表已丢弃。

SQL> select * from t1;
select * from t1
              *
ERROR 位于第 1 行:
ORA-00980: 同义词转换不再有效

  这时候未提示"ORA-01775: 同义词的循环链",重启数据库后,提示依旧。原因不明。


  值得注意的是同义名也有owner,创建同义名时如果不指定,就建在当前用户下。
  如果指定为Public,则为公用同义名,只要有相关的权限,各个用户都可以使用的。
  指定在特定非Public用户下时,别的用户使用时会提示错误:ORA-00942: 表或视图不存在。
  示例如下:


SQL> conn system/[email protected];
已连接。

SQL> select owner,synonym_name,table_owner,table_name from all_synonyms where sy
nonym_name=^T1^ or synonym_name=^T2^;

未选定行

---创建system下的同义名
SQL> create or replace synonym t1 for scott.test1;

同义词已创建。

---查看创建成功
SQL> select owner,synonym_name,table_owner,table_name from all_synonyms where sy
nonym_name=^T1^ or synonym_name=^T2^;

OWNER      SYNONYM_NAME                   TABLE_OWNER     TABLE_NAME
---------- ------------------------------ --------------- ----------
SYSTEM     T1                             SCOTT           TEST1

SQL> conn scott/[email protected]
已连接。
SQL> select * from t1;
select * from t1
              *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在

  Scott用户下无法使用system下的同义名,提示ORA-00942错误。
  下面创建Public同义名,测试Scott用户下是否可以使用。

SQL> conn system/[email protected];
已连接。
SQL> drop synonym t1;

同义词已丢弃。

SQL> select owner,synonym_name,table_owner,table_name from all_synonyms where sy
nonym_name=^T1^ or synonym_name=^T2^;

未选定行

SQL> create or replace public synonym t1 for scott.test1;

同义词已创建。

SQL> conn scott/[email protected]
已连接。
SQL> select * from t1;

        ID NAME
---------- ----------
         1 AAA 

   可以发现,Scott用户下可以使用Public同义名,


【版权声明】
本文为原创,遵循CC 4.0 BY-SA版权协议!转载请附上原文出处链接及本声明。
原文链接:https://tdlib.com/am.php?t=nIi8JTqowL28
Tag: Oracle技巧 TTTBLOG
我也要发一个   ·   返回首页     ·   返回[Oracle]   ·    前一个  ·   下一个
评论
Allen#1.  Allen at 2014-11-05 19:12:25(Normal)  分享链接
| 2897 | 庆晨 | 2014-11-05 19:12:25 | [email protected] | http://user.qzone.qq.com/415883920/blog/1412684586 |
-----
会网购的一些朋友,可以试着在网上挣点生活费,日赚50~160,多劳多得,不需要任何流动资金,要流动资金的全是pian子,无论你是全职妈妈,还是办公室职员,在校学生,都可以加入我们,不需要任何的流动资金。亲们放假也觉得无聊吧,整天除了游戏就是电视剧。还在虚度光阴么?不知道做什么好吗?诚邀你来我们兼直平台吧,每天用一点闲暇的时间赚点外快吧,靠不靠谱你了解下就知道了!QQ:415883920微信:mc19921013 共有6种赚钱方式:1.拍单赚取佣金 2.推荐会员 3.推荐卖家 4.讲解 5.培训 6.主持。具体链接:http://user.qzone.qq.com/415883920/blog/1412684586
Allen#2.  Allen at 2014-11-06 09:13:51(Normal)  分享链接
| 2898 | www.qjjrcw.com | 2014-11-06 09:13:51 | [email protected] | http://www.qjjrcw.com |
-----
这篇文章不错,欢迎看一下我的www.qjjrcw.comv5Vji
Allen#3.  Allen at 2014-11-06 13:53:26(Normal)  分享链接
| 2899 | 大宗商品投资 | 2014-11-06 13:53:26 | [email protected] | |
-----
天富民现货开户(wxtfm)精选浙江9个点总成本的原油白银铜(40个点)现货平台开户,靠谱的技术支持,(联系QQ172358697 电话18961712161),当然还有各农产品、电解镍等品种开户,原油是短线爱好者的最佳交易品种tTdua
Allen#4.  Allen at 2014-11-06 17:34:36(Normal)  分享链接
| 2901 | FWQWQ6 | 2014-11-06 17:34:36 | [email protected] | |
-----
印度代购:易瑞沙,特罗凯,多吉美,特罗凯等,可带发票,QQ 5832135227Zjff
Allen#5.  Allen at 2014-11-06 18:10:30(Normal)  分享链接
| 2903 | FYX5tx | 2014-11-06 18:10:30 | [email protected] | |
-----
双十一狂欢 速客iceco车载速冻冰箱 http://sukeqcyp.tmall.com/ 正品惊爆折扣HPrSa
Allen#6.  Allen at 2014-11-07 09:12:14(Normal)  分享链接
| 2904 | www.teseyn.com | 2014-11-07 09:12:14 | [email protected] | http://www.teseyn.com |
-----
这篇文章不错,欢迎看一下我的特色云南分享网:http://www.teseyn.comY0YiK
Allen#7.  Allen at 2014-11-07 09:39:45(Normal)  分享链接
| 2905 | www.qjjrcw.com | 2014-11-07 09:39:45 | [email protected] | http://www.qjjrcw.com |
-----
嗯,确实挺不错的分享文章www.qjjrcw.comnKKia
Allen#8.  Allen at 2014-11-08 08:27:44(Normal)  分享链接
| 2909 | FlgUqb | 2014-11-08 08:27:44 | [email protected] | |
-----
济南旅行社www.jhly.cn4737E
Allen#9.  Allen at 2014-11-08 20:27:59(Normal)  分享链接
| 2914 | 南昌精饰遮阳制品有限公司 | 2014-11-08 20:27:59 | [email protected] | http://www.ncjingshi.com |
-----
此文章相当不错,更多请参照www.ncjingshi.com 这里有更全面的资料,欢迎进入!lIdvI
Allen#10.  Allen at 2014-11-08 20:37:00(Normal)  分享链接
| 2915 | 南昌精饰遮阳制品有限公司 | 2014-11-08 20:37:00 | [email protected] | http://www.ncjingshi.com |
-----
联系电话:18070053762 联系人:许小姐 有需要遮阳面料,遮阳布料的请与我联系,南昌精饰遮阳制品有限公司欢迎来电。dx6H6
Allen#11.  Allen at 2014-11-11 14:33:14(Normal)  分享链接
| 2928 | FxSSbV | 2014-11-11 14:33:14 | [email protected] | |
-----
电表调校器节电器省电器等电工工具生产批发www.sn2839.com 02061131685 18988992839vRgDh
Allen#12.  Allen at 2014-11-11 15:15:53(Normal)  分享链接
| 2930 | 专用车厂家 | 2014-11-11 15:15:53 | [email protected] | http://www.xgcszqgw.com |
-----
3方到16方搅拌车厂家13908668976www.xgcsgzqgw.com QQ:1253704088UNkVS
Allen#13.  Allen at 2014-11-12 11:40:31(Normal)  分享链接
| 2934 | F3OMQg | 2014-11-12 11:40:31 | [email protected] | |
-----
嗯,确实挺不错的分享文章0MWzV
Allen#14.  Allen at 2014-11-12 15:04:02(Normal)  分享链接
| 2938 | 专用车厂家 | 2014-11-12 15:04:02 | [email protected] | http://www.xgcszqgw.com |
-----
3方到16方搅拌车生产厂家 www.xgcszqgw.com 13908668976 QQ:1253704088 欢迎来询价!weBTU
Allen#15.  Allen at 2014-11-14 12:47:10(Normal)  分享链接
| 2946 | www.heizilan.com | 2014-11-14 12:47:10 | [email protected] | http://www.heizilan.com |
-----
路过看看 学习了,谢谢分享www.heizilan.comD1qdW
Allen#16.  Allen at 2014-11-14 14:47:53(Normal)  分享链接
| 2948 | F35Mv4 | 2014-11-14 14:47:53 | [email protected] | |
-----
标牌铭牌成都固锝科技www.goodprecision.com这个文章真要好好学习学习r68HB
Allen#17.  Allen at 2014-11-14 21:09:09(Normal)  分享链接
| 2950 | FnNz1P | 2014-11-14 21:09:09 | [email protected] | http://www.qcbfc.com |
-----
北京市汽车报废厂新址http://www.qcbfc.com 全国免费咨询电话400-004-3165
Allen#18.  Allen at 2014-11-17 09:26:41(Normal)  分享链接
| 2952 | F6Ii7F | 2014-11-17 09:26:41 | [email protected] | |
-----
印度代购:易瑞沙,特罗凯,多吉美,格列卫等,印度直邮,可带发票,QQ 583213522bTg3Z
Allen#19.  Allen at 2015-02-02 10:19:33(Normal)  分享链接
| 3105 | 捕霸机电 | 2015-02-02 10:19:33 | | http://www.yezhuj.com |
-----
捕猎机专家 专业批发捕猎器http://www.yezhuj.com/,www.yezhuj.com.QQ:3038559649
Allen#20.  Allen at 2017-01-30 14:12:52(Normal)  分享链接
| 3278 | 装修网 | 2017-01-30 14:12:52 | [email protected] | |
-----
【华夏装饰网】新型互联网装修模式,一分钟在线申请装修,平台免费提供三套装修设计方案和预算报价,足不出户就可以轻松在家挑选装修,非常方便快捷,立即申请装修:
顶部     1/1 
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Oracle]   ·   返回顶部