【发布时间】:2019-07-24 11:21:04
【问题描述】:
我在 Microsoft Query 中创建了要使用 VBA 在 Excel 中运行的查询。
它们在不同的计算机上工作,但有一台计算机不工作。
在那台计算机上,除了使用 CTE 的查询之外,查询仍然有效。
正常的查询如下:
SELECT
TBL.COL
FROM
DB.TBL TBL;
但是当它有如下子查询(CTE)时:
WITH
SUBQUERY AS (
SELECT
TBL.COL
FROM
DB.TBL TBL
)
SELECT
SUBQUERY.COL
FROM
SUBQUERY;
它运行但不检索任何数据。
它甚至不会像它工作时那样显示列名,而是返回 0 条记录。
查询显示警告消息:
SQL 查询无法以图形方式表示。还要继续吗?
这是正常的,在任何电脑上都会显示,但之后还会显示另一条警告信息:
SQL 语句执行成功。
仅在该计算机不工作时出现。
我需要能够将它们用于我所做的查询。
使用临时表可能可行,但我没有尝试所需的权限。
我尝试使用inline views,但他们复制了数据。
【问题讨论】:
-
我不知道原因,但是 WITH 中的查询选择不正确。应该像 SELECT SUBQUERY.COL FROM SUBQUERY。否则你应该得到 ORA-00904 错误。 oracle-base.com/articles/misc/with-clause
-
@sandyv 是的,这是从真实名称转换为简化名称的拼写错误,已修复。
-
它可以在一台客户端计算机上运行,而不能在另一台计算机上运行?只是一个猜测,但我会说 Microsoft Query 正在通过 ODBC 连接到 Oracle,并且无法正常工作的客户端计算机安装了过时版本的 Oracle 客户端。
-
@MatthewMcPeak 我刚刚检查过,驱动程序的版本是 8.01.07.00(2000 年 5 月 11 日的 Oracle ODBC 驱动程序),而我的是 11.02.00.01(2010 年 4 月 2 日的 Oracle in OraClient11g_home1)。我会要求他更新。如果你想写一个答案,我会在检查它是否有效后接受它。谢谢。
标签: sql oracle oracle11g common-table-expression ms-query