PROCEDURE a(
P_YOSYA_SIGEN_NO IN VARCHAR2
)
IS
nYosyaSigenNo NUMBER(10);
BEGIN
--情報不存在。
SELECT COUNT(*) INTO nYosyaSigenNo FROM YOSYASIGEN WHERE YOSYA_SIGEN_NO = P_YOSYA_SIGEN_NO;
IF nYosyaSigenNo = 0 THEN
RAISE_APPLICATION_ERROR(-20207,'指定情報不存在');
END IF; --削除行。
DELETE FROM YOSYASIGEN WHERE YOSYA_SIGEN_NO = P_YOSYA_SIGEN_NO; COMMIT; EXCEPTION
--Exception
WHEN OTHERS THEN
ROLLBACK;
--RETURN SQLERRM; END a;如上面的例子,里外是处理了,但外界怎么知道呢?
P_YOSYA_SIGEN_NO IN VARCHAR2
)
IS
nYosyaSigenNo NUMBER(10);
BEGIN
--情報不存在。
SELECT COUNT(*) INTO nYosyaSigenNo FROM YOSYASIGEN WHERE YOSYA_SIGEN_NO = P_YOSYA_SIGEN_NO;
IF nYosyaSigenNo = 0 THEN
RAISE_APPLICATION_ERROR(-20207,'指定情報不存在');
END IF; --削除行。
DELETE FROM YOSYASIGEN WHERE YOSYA_SIGEN_NO = P_YOSYA_SIGEN_NO; COMMIT; EXCEPTION
--Exception
WHEN OTHERS THEN
ROLLBACK;
--RETURN SQLERRM; END a;如上面的例子,里外是处理了,但外界怎么知道呢?
create or replace procedure(p_out out number) as
begin
insert into ....
commit;
p_out:=0; --成功执行
return ;
exception
when others then
p_out:=1; --错误
rollback;
return ;
end ;--或触发异常,类似下面的写法
create or replace trigger dinya_testa
before delete on testa
for each row
begin
raise_application_error(-20003,'不能删除数据');
end;