【发布时间】:2011-10-04 04:00:18
【问题描述】:
我正在尝试让 WITH 子句与 Oracle 中的合并一起使用,但由于某种原因,我无法使其正常工作。我敢肯定这是显而易见的,但我只是没见过。
-- behold, the wonders of fake data
WITH X AS (
SELECT
'moo' AS COW,
'woof' AS CAT,
(SELECT MAX( DECIBELS ) FROM ANIMALIA WHERE COW = 'moo' ) AS DECIBELS
FROM DUAL )
MERGE INTO ANIMALIA D
USING X
WHEN MATCHED THEN
UPDATE SET D.COW = X.COW;
编辑
我实际上发现了如何解决这个问题(在我提交问题之前),但我认为由于我花了很长时间才找到答案,希望留下这个问题意味着下一个人会找到它没那么多时间。
我会在一天左右发布答案,但如果其他人在此期间发布答案,他们将获得积分。
【问题讨论】:
-
ORA-00928:缺少 SELECT 关键字
-
其实子查询最终和问题没有任何关系。
-
@OMG 我可以回答这个问题并将其标记为这样,但如果有人知道,他们可能会欣赏这些观点,你知道吗? (对这个话题有什么想法吗?)
-
@OMG 如果你愿意,我可以发给你。
标签: oracle merge with-statement ora-00928 subquery-factoring