日期:2014-05-17  浏览次数:20886 次

请教一个透明网关的查询问题
求解一个透明网关的查询问题


我使用oracle 9i的透明网关访问sql server 2005的数据表(arch_tab)。假设该表有列:A,B,C,D。
我在oracle 里建立了一个dblink(test),我执行 select * from arch_tab@test的时候,是可以查询到sql server那张表里的数据的。

之后,我在oracle里新建了一张视图:
create  view  o_arch_view select * from arch_tab@test
将sql server 读出的结果保存在一个名为o_arch_view的视图里。

我在oracle里执行查询语句:
select   t.A   from   o_arch_view t  的时候(查询A列的值)报错:

ORA-00904: "T"."A"无效的标识符。

为啥我执行  select *  from o_arch_view的时候就没有问题?难道oracle的透明网关只能解析 select * 操作吗?

为什么会报这种错误呢?该如何解决只查询一列的问题?

谢谢!
------解决方案--------------------

你看看select * from arch_tab@test出来的结果中字段A的大小写情况,
然后按照
select t."a" from arch_tab@test的方式执行