你好,我不知道为什么发生这种情况,但我想,以执行合并使用参数化查询错误ORA-00904“invalide indentifier”当使用“合并到”与参数化查询
如果我运行硬编码值查询查询精运行:
MERGE INTO MyTable e
USING (with cte(id, name,date) as
(select * from (select 10,'Tester','2013-05-08' from dual union
select 11,'Tester2','2015-05-08' from dual union
select 12,'Tester3'','2015-05-09' from dual union
select 13,'Tester4'','2015-05-09' from dual
))select * from cte) S
ON (e.id = S.id)
WHEN MATCHED THEN UPDATE SET prefixName = S.name,lastModi=S.date
然而,当我执行这个参数化查询,当我分配相应的值我在日期1列得到一个ORA-00904错误
MERGE INTO MyTable e
USING (with cte(id, name,date) as
(select * from (select :id1,:name1,:date1 from dual union
select :id2,:name2,:date2 from dual union
select :id3,:name3,:date3 from dual union
select :id4,:name4,:date4 from dual
)) select * from cte) S
ON (e.id = S.id)
WHEN MATCHED THEN UPDATE SET prefixName = S.name,lastModi=S.date
有人可以帮我解决这个问题。
感谢
基于文档,它期望在那里的字段名称。你可以试试我别称那种表情吗?或者创建更多表达式?例如:'''||:date1 as datefield'? –