Chinaunix首页 | 论坛 | 博客
  • 博客访问: 380498
  • 博文数量: 113
  • 博客积分: 3035
  • 博客等级: 中校
  • 技术积分: 1430
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-01 16:32
文章分类
文章存档

2011年(42)

2010年(70)

2009年(1)

我的朋友

分类: Oracle

2010-11-25 16:53:24

我们都知道通过访问同义词就相当于访问其他schema对象的表,但是有一种情况要注意,那就是当你创建的同义词和其他对象重名的时候,有可能你执行同义词查询却指向了另一个同名的对象,导致无法访问到正确的数据。
看如下测试:
sys@FOX> create table s_a (name varchar2(10));

Table created.
sys@FOX> create public synonym s_a for t1;

Synonym created.

sys@FOX> select * from s_a;

no rows selected
sys@FOX> select * from t1;

         X
----------
         2
         2
         2
         2
sys@FOX> select owner,object_name,object_type FROM dba_objects where object_name='S_A';

OWNER                          OBJECT_NAME                              OBJECT_TYPE
------------------------------ ---------------------------------------- ------------------
PUBLIC                         S_A                                      SYNONYM
SCOTT                          S_A                                      TABLE
阅读(3081) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-02-17 14:01:00

真很正常,因为owner不一样