【发布时间】:2016-06-08 13:53:13
【问题描述】:
我在 oracle 中使用以下查询。但是,它给出了一个错误,指出第 5 行中的“c.par”是一个无效参数。不知道为什么。列存在。我检查了。我已经为此苦苦挣扎了很长时间。我要做的就是将一个表合并到另一个表中并使用 oracle 更新它。有人可以帮忙吗?
MERGE INTO SPRENTHIERARCHIES
USING ( SELECT c.PARENTCATEGORYID AS par,
e.rootcategoryId AS root
FROM SPRENTCATEGORIES c,SPRENTHIERARCHIES e
WHERE e.root (+)= c.par
) SPRENTCATEGORIES
ON (SPRENTHIERARCHIES.rootcategoryId = SPRENTCATEGORIES.parentcategoryId)
WHEN MATCHED THEN
UPDATE SET e.root=c.par
【问题讨论】:
-
您的查询实际上没有意义。你为什么用
merge而不是简单的update? -
那么错误是“无效标识符”还是“无效参数”?在这两种情况下,它都没有关联的 ORA 代码吗?
-
除非您的 SPRENTHIERARCHIES 表同时具有
rootcategoryId和root列,并且您的 SPRENTCATEGORIES 表同时具有parentCategoryId和par列,否则您检查是否存在错误名称。也许将表定义添加到问题中以澄清。但这似乎并没有真正做任何事情,如果匹配的话,你会更新到相同的值。