2012-05-30 31 views
20
insert into OPT (email, campaign_id) values('[email protected]',100) 
where not exists(select * from OPT where (email ="[email protected]" and campaign_id =100)) ; 

Error report: SQL Error: ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause:
*Action:Oracle eklemek

o Oracle'da yokmuş nasıl yeni bir satır eklemek için?

cevap

4
insert into OPT  (email,  campaign_id) 
select '[email protected]' as email, 100 as campaign_id from dual MINUS 
select     email,  campaign_id from OPT; 

zaten bir rekor varsa [email protected]/100 OPT'de MINUS, bu kaydı select '[email protected]' as email, 100 as campaign_id from dual kayıttan çıkaracak ve hiçbir şey eklenmeyecek. Öte yandan, böyle bir kayıt yoksa, MINUS hiçbir şey çıkarmaz ve [email protected]/100 değerleri eklenir. zaten işaret etmiştir

p.marino olarak özel olarak senin görevin çözmek için tasarlanmıştır olarak, merge muhtemelen sorun için daha iyi (ve daha doğru) bir çözümdür.