Tak*_*kol 0 oracle merge ora-00904
我正在使用merge命令将不存在的记录插入表中.当我使用简单的插入命令时,它工作正常.如果我使用合并系统总是警告ORA-00904:"T"."GROUP_COMPANY_ID"无效的标识符.一旦我将ON条件更改为(1 = 1)以强制为true,则merge命令正常工作.
原始合并声明出错了什么?我非常确定该表是在没有双引号的情况下创建的,所以这里没有案例问题.
create table test
(
create_date DATE not null,
group_company_id CHAR(16) not null
)
-- This is okay
INSERT INTO test (create_date, group_company_id) VALUES (TO_DATE('20100531', 'YYYYMMDD'), 'abc');
-- This one will raise ORA-00904 error
MERGE INTO test T
USING (SELECT 'abc' AS group_company_id FROM DUAL) C
ON (T.group_company_id = C.group_company_id)
-- ON (1 = 1)
WHEN NOT MATCHED THEN
INSERT (create_date, group_company_id)
VALUES (TO_DATE('20100531', 'YYYYMMDD'), 'abc')
WHEN MATCHED THEN
UPDATE SET group_company_id = 'abc';
Run Code Online (Sandbox Code Playgroud)