我遇到了这样一种情况,在模式中我有一个表,比如说表ACTION,而我也得到了一个同义词,叫做ACTION,它引用另一个表到另一个模式。
现在,当我运行查询时
select * from操作
它将从表中选择表中的记录,但不会选择同义词。
不管怎样,我要从同义词和表中一起选择吗?
谢谢
发布于 2008-11-07 13:26:48
我不认为您的操作同义词与您的操作表位于相同的模式中,因为这在Oracle中是不允许的。您的操作同义词很可能驻留在其他模式中,也许它是一个公共同义词。如果是这种情况,您可以使用
select * from ACTION
union
select * from public.ACTION发布于 2008-11-07 13:01:28
那么,您的底层操作表应该重命名,比方说do LOCAL_ACTION。
让我们假设您的操作同义词在otheruser.LOCAL_ACTION表上...
然后,您可以将操作同义词重新定义为:
SELECT * from LOCAL_ACTION
UNION
SELECT * from otheruser.LOCAL_ACTION最后,select * from操作将为您提供两个表的组合列表。
发布于 2008-11-10 13:44:31
表和私有同义词确实共享相同的名称空间,因此这是一个公共同义词:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723
请注意,UNION是结果集上的隐式distinct。你需要的是联合行动。
select * from ACTION
union all
select * from public.ACTIONhttps://stackoverflow.com/questions/271953
复制相似问题