【发布时间】:2015-05-06 15:16:54
【问题描述】:
我正在尝试在过程中使用MERGE,并在插入值中使用USING_SET 进行查询
MERGE 如下所示:
MERGE INTO N_CUSTOMER dest
USING S_customer src
ON (dest.CUSTOMER_ID = src.CUSTOMER_ID)
WHEN
MATCHED THEN
update set
dest.DATE_OF_BIRTH = src.S_BIRTHDATE,
dest.GENDER = src.S_GENDER,
dest.NAME = src.S_NAME
WHEN NOT MATCHED THEN
INSERT (DATE_OF_BIRTH, GENDER, NAME, TOTAL_FOO_COUNT)
VALUES (src.S_BIRTHDATE, src.S_GENDER, src.S_NAME,
(select count(f.FOO_ID) from S_FOO f where f.CUSTOMER_ID = src.CUSTOMER_ID));
我得到的错误是:
无效的 SQL 错误:ORA-00904:“SRC”。“CUSTOMER_ID”:子查询中的标识符无效(从 S_FOO f 中选择 count(f.FOO_ID),其中 f.CUSTOMER_ID = src.CUSTOMER_ID)。
oracle 无法识别子查询中的“src”。有什么想法吗?
【问题讨论】:
标签: sql oracle plsql oracle11g merge