0
我真的需要一些幫助,我的查詢。我試圖將兩個表合併在一起,但我只希望Cast_Date和Sched_Cast_Date的數據相同。我嘗試運行查詢,但在21行13列中找到錯誤缺失關鍵字。我確信這不是我唯一可能發生的錯誤。有人可以幫助我使這個查詢正常運行嗎?以下是我正在運行的查詢。合併和匹配oracle
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'
將兩個表合併在一起對您意味着什麼?通常情況下,如果有匹配項,則更新目標表,並在沒有匹配時插入到目標表中。在這裏,你永遠不會插入到目標表中。而且您永遠不會更新目標表,因爲根據定義,如果沒有匹配,則目標表中沒有要更新的行。你使用的是什麼版本的Oracle? Oracle將可選的DELETE子句添加到10g(並且使WHEN MATCHED和WHEN NOT MATCHED子句都是可選的),但在匹配上刪除似乎很奇怪。 –
@Justin你爲什麼選擇評論而不是回答? –
@Conrad - 在嘗試解決語法問題之前,我試圖理解需求。我試圖指出當前的語法是如何混淆需求的。 –