sql - Oracle CTE 在一台计算机上失败
问题描述
我在 Microsoft Query 中创建了要在 Excel 中使用 VBA 运行的查询。
他们在不同的计算机上工作,但有一台计算机不工作。
在该计算机中,除了使用 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 语句执行成功。
仅当它不起作用时才会出现在该计算机中。
我需要能够将它们用于我所做的查询。
使用临时表可能会起作用,但我没有尝试所需的权限。
我尝试使用内联视图,但它们复制了数据。
解决方案
我在 Microsoft Query 中创建了要在 Excel 中使用 VBA 运行的查询。...但是有一台计算机无法正常工作。
WITH
直到数据库第 9 版才引入公用表表达式(即子句)。由于涉及 ODBC(Microsoft Query),因此您遇到这种情况的最可能原因是无法运行的计算机安装了 Oracle 客户端的过时(9 版之前)版本。
比较一台可以工作的客户端计算机和一台不能工作的客户端计算机之间的 Oracle 客户端安装,以确定是否是这种情况。如果是,请在有问题的机器上升级 Oracle 客户端。
推荐阅读
- memory-management - 为什么 WebAssembly 中的 malloc 需要 4 倍的内存?
- python-3.x - Wamp Server 不运行 pyscreenshot 和 pyautogui
- python - Django按序列化方法字段过滤
- mongodb - 验证后MongoDB添加数据库和用户
- django - Django:如何在管理器模型中添加管理器
- continuous-integration - 如何在 gitlab-ci 中屏蔽 AWS_SECRET_ACCESS_KEY
- mrtk - MRTK 摇杆输入
- sql - 如何将论点放在引号内?
- c++ - 无法将帧写入视频?
- java - Tomcat部署时的Application.properties位置