我试图在 Oracle 中使用 WITH 子句,但它没有返回任何数据。
这是我要运行的查询...
with test as
(select count(*)
from my_table)
select *
from test;
当我运行此代码时,我会返回 my_table 中的记录数
select count(*)
from my_table
我在 Oracle 10g 上,所以查询应该可以工作......
select * from v$version;
产量
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris:版本 10.2.0.4.0 - Production
NLSRTL 版本 10.2.0.4.0 - 生产
可能是权限问题还是什么?
*编辑:*
我相信我的问题很清楚。使用 WITH 语句不会为我返回任何记录,即使 WITH 语句中的“select count(*) from my_table”语句工作正常,这会让我相信还有另一个我无法弄清楚的问题,因此这个问题:)
编辑 2
好的,所以如果我尝试从 SQL Server Management Studio 的链接服务器执行查询,我会收到一些错误信息:
sg 7357, Level 16, State 2, Line 1 无法处理对象“with test as (select count(*) from v$version) select * from test;”。链接服务器“MyServer”的 OLE DB 提供程序“MSDAORA”指示该对象没有列或当前用户对该对象没有权限。