ITPub博客

首页 > 数据库 > Oracle > SQLServer访问Oracle(通过同义词-视图-数据字典)出现的问题

SQLServer访问Oracle(通过同义词-视图-数据字典)出现的问题

原创 Oracle 作者:qdrzq 时间:2015-02-16 13:12:56 1 删除 编辑

近日,调整客户供应链系统(基于SQL Server库展现网页页面,数据通过SQLServer链接服务器取Oracle库)数据同步的问题过程中,发现如下所述的奇怪现象.
特记录如下:

Oracle,A B两用户
A用户 有 TBLA1,TBLA2,TBLA3 三个以TBL开头的表
B用户 有 TBLB1,TBLB2 两个以TBL开头的表

A用户下,建视图 v_tblname 如下:
CREATE OR REPLACE VIEW V_TBLNAME AS
SELECT TABLE_NAME  FROM  USER_ALL_TABLES
WHERE TABLE_NAME like 'TBL%';

A用户下,为B用户建同义词
create synonym B.V_TBLNAME for A.V_TBLNAME;

此时,以B用户登录,
select * from V_TBLNAME;
因为是取自A用户的视图,所以查询到的结果是
TBLA1
TBLA2
TBLA3

在SQL Server上一端,建链接服务器
sp_addlinkedserver 'ORCL','ORACLE','MSDAORA','ORCL';
go
sp_addlinkedsrvlogin 'ORCL',FALSE,NULL,'B','passwordB';
go

这样,SQL Server中
select * from ORCL..B.V_TBLNAME ;
结果却是:
TBLB1
TBLB2
真让人匪夷所思.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29512902/viewspace-1437217/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-01

  • 博文量
    38
  • 访问量
    362734