在插入Oracle之前咨询是否存在记录

时间:2013-11-08 23:58:17

标签: sql select insert oracle11g

我正在oracle中开发一个查询,如果某个记录不存在(SELECT)用于进行INSERT步骤,那么这是我的代码

IF
    (SELECT COUNT(*) FROM (SELECT * FROM HEX_KE_LOC WHERE CLVE_LOC = '20000')) = 0
THEN
    {INSERT INTO 
            HEX_KE_LOC (CLVE_LOC,CLVE_STDO,MUN,CLVE_PAIS,UID_BUS_UNI,CLVE_ALTR,DSC,CIT,ZIPCODE) 
    VALUES   
            ('20000','AGS','001','MX','0014','1','Zona Centro','01','20000');
      }
END IF;

但我不能让它发挥作用,任何帮助我都会感激

1 个答案:

答案 0 :(得分:2)

我首选的方法是使用MERGE语句,不带更新子句:

MERGE INTO HEX_KE_LOC USING dual
   ON ( CLVE_LOC = '20000' )
WHEN NOT MATCHED THEN INSERT (CLVE_LOC,CLVE_STDO,MUN,CLVE_PAIS,UID_BUS_UNI,CLVE_ALTR,DSC,CIT,ZIPCODE) 
    VALUES ('20000','AGS','001','MX','0014','1','Zona Centro','01','20000');