我的查询确实需要一些帮助。我试图将两个表合并在一起,但我只希望Cast_Date和Sched_Cast_Date的数据是相同的。我尝试运行查询,但我在第21行第13行中得到错误缺失关键字。我确信这不是我唯一可能的错误。有人可以帮助我启动并运行此查询吗?以下是我正在运行的查询。
merge into Dante5 d5
using (SELECT
bbp.subcar treadwell, bbp.BATCH_ID batch_id,
bcs.SILICON silicon,
bcs.SULPHUR sulphur,
bcs.MANGANESE manganese,
bcs.PHOSPHORUS phosphorus,
bofcs.temperature temperature,
to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') start_pour,
to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') end_pour,
to_char(bbp.sched_cast_date, 'dd-mon-yy hh24:mi') Sched_cast_date
FROM bof_chem_sample bcs, bof_batch_pour bbp, bof_celox_sample bofcs
WHERE bcs.SAMPLE_CODE= to_char('D1')
and bofcs.sample_code=bcs.sample_code
and bofcs.batch_id=bcs.batch_id
and bcs.batch_id = bbp.batch_id
and bofcs.temperature>0
AND bbp.START_POUR>=to_DATE('01012011000000','ddMmyyyyHH24MISS')
and bbp.sched_cast_date<=sysdate)d3
ON (d3.sched_cast_date=d5.sched_cast_date)
when matched then
delete where (d5 sched_cast_date>=to_date('18012011','ddmmyyyy'))
when not matched
then
update
set d5=batch_id='99999'
答案 0 :(得分:1)
您的语法无效。如果指定WHEN MATCHED,则需要指定WHEN MATCHED THEN UPDATE SET col = value。对于WHEN NOT MATCHED,您必须指定何时不匹配然后插入。 See the documentation了解更多信息。