【发布时间】:2015-06-15 13:14:31
【问题描述】:
我在 Oracle SQL 中遇到了这个查询的问题。
Errore alla riga del comando:18 Colonna:42
报告错误:
错误 SQL:ORA-00918:列定义不明确
00918. 00000 - “列定义不明确”
*原因:
*行动:
这是查询,但我没有看到定义不明确的列:
MERGE INTO T_HPSM_CM_UBIS H USING
(SELECT A.itam_relevant_appl_code as ret,
b.service_id,
b.it_service,
b.itam_user_id,
b.itam_last_name,
b.itam_first_name,
b.itrm_user_id,
b.itam_first_name,
b.itam_last_name
FROM
(SELECT f.itam_relevant_appl_code
FROM T_HPSM_CM_UBIS f
GROUP BY f.itam_relevant_appl_code
) A,
t_cp_list_itam b
WHERE A.itam_relevant_appl_code = b.hvb_appl_code
) s ON (H.itam_relevant_appl_code = s.ret)
WHEN MATCHED THEN
UPDATE SET H.service_id = s.service_id, H.it_service = s.it_service;
【问题讨论】:
-
我认为问题出在“s.ret”上,您的 MERGE 语句的第二行还有一个“ret”作为别名
-
也许尝试在 A 和 t_cp_list_itam b 之间写一个 JOIN 语句
-
为什么列
b.itam_last_name和b.itam_first_name选择了两次同名?