Oracle的MERGE未能添加數(shù)據(jù)
Oracle的MERGE未能添加數(shù)據(jù)
使用Oracle的MERGE同表關(guān)聯(lián)未能添加數(shù)據(jù)問題
第一次接觸Oracle的MERGE 的更新或插入數(shù)據(jù)這個語法,上網(wǎng)了解了下寫法,
然后就動手應(yīng)用在自己的項目里,下面有個例子:
MERGE INTO Table1 t1
USING ( select id,count from Table1 where id='001') t2 on (t1.id=t2.id)
WHEN MATCHED THEN UPDATE SET t1.count=t1.count+1
WHEN NOT MATCHED THEN INSERT (count) VALUES (1)
測試了下,結(jié)果發(fā)現(xiàn)不存在時添加不了數(shù)據(jù),
后來上網(wǎng)找了原來是同表關(guān)聯(lián)時如果不符合條件,using的數(shù)據(jù)集為null,
就添加不了數(shù)據(jù)了,必須用count()函數(shù)
修改后:
MERGE INTO Table1 t1
USING ( select count(*) from Table1 where id='001') t2 on (t1.id=t2.id)
WHEN MATCHED THEN UPDATE SET t1.count=t1.count+1
WHEN NOT MATCHED THEN INSERT (count) VALUES (1)
時間:2012-08-24 責任編輯:admin
相關(guān)文章
無相關(guān)信息