EXISTS方法

函数EXISTS(N)在第n个元素存在的情况下会返回TRUE,否则返回FALSE。我们主要使用EXISTS和DELETE来维护嵌套表。其中EXISTS还可以防止引用不存在的元素,避免发生异常。下面的例子中,PL/SQL只在元素i存在的情况下执行赋值语句

示例:EXISTS方法

--清理环境
DROP PROCEDURE proc;
DROP TABLE tab CASCADE;

create table tab(a varchar(2));
insert into tab values('a');

CREATE OR REPLACE PROCEDURE proc AS
declare
   type table_typ is table of tab.a%type;
   typ table_typ; 
begin
    typ:=table_typ('b');
    if typ.exists(1) then
        dbms_output.put_line('exit');
    else
        dbms_output.put_line('not exit');
    end if;
end; 

/
EXEC proc;

--删除
DROP PROCEDURE proc;
DROP TABLE tab CASCADE;

注解

当参数下标N越界时,EXISTS会返回FALSE,并不会抛出异常。