Oracle11g 在插入之前,如何检查表以查看行是否已经存在?

Oracle11g 在插入之前,如何检查表以查看行是否已经存在?,oracle11g,sqlplus,Oracle11g,Sqlplus,这是我的剧本。试图通过比较deptno来确定检查行是否已存在的最佳方法 CREATE OR REPLACE PROCEDURE insert_rows (pl_deptno dept.deptno%TYPE, pl_dname dept.dname%TYPE, pl_loc dept.loc%TYPE ) AS BEGIN INSERT INTO dept (deptno,dname,loc) values ( pl_deptno,pl_dna

这是我的剧本。试图通过比较deptno来确定检查行是否已存在的最佳方法

CREATE OR REPLACE PROCEDURE insert_rows
    (pl_deptno dept.deptno%TYPE, pl_dname dept.dname%TYPE, pl_loc dept.loc%TYPE
    ) AS
    BEGIN
    INSERT INTO dept 
    (deptno,dname,loc) 
    values ( pl_deptno,pl_dname,pl_loc);
    end insert_rows;
    /

如果deptno是唯一键,只需插入一行即可。如果存在重复,捕获异常并执行所需操作

否则,如果两个用户同时插入/检查,您将获得需要处理事务的各种竞争条件