❶ Oracle 存储过程怎么抛出异常
你说的异常是什么意思?如果是,执行中的错误,那么可以用“调试”,不过需要有一个系统权限的拥护才能调试,权限好象是什么debug XXXXX。
如果说的是有时执行因为这样那样的数据问题出现的异常,那么一般都是通过exception来抛出异常的,这样的抛出的异常,你可以自己编代码,然后输入一张表内,这样就可以捕获异常了。如果1表示没有主键,2表示数据超长等等。具体的写法网上很多,这里就不写了。
❷ oracle 存储过程异常处理
先建一个错误跟踪表
create sequence s_error_id;
CREATE TABLE ERROR_RECORD
(
ERROR_ID NUMBER(10) primary key,
ERROR_CODE NUMBER(10),
ERROR_MSG VARCHAR2(2000),
ERROR_DATE DATE,
ERROR_PROGRAM VARCHAR2(200)
);
--------在过程的例外里向跟踪表写入错误信息:
create or replace procere day_task is
v_sqlcode ERROR_RECORD.ERROR_CODE%type;
v_msg ERROR_RECORD.error_msg%type;
begin
------program body
exception when others then
--记录错误信息表
v_sqlcode :=sqlcode;
v_msg :=sqlerrm;
insert into error_record(error_code,error_msg,error_date,error_program)
values (v_sqlcode,v_msg,sysdate,‘day_task’);
end;
❸ Oracle 定义存储过程 不能执行,处于无效状态。
无效状态有两种可能:
1、一种是你的存储过程编辑没有成功,创建了,但里面有语法错误。
❹ oracle存储过程 处于无效状态
1、你的存储过程有错误,编译不通过。处理于无效状态。
2、问题
存储过程中隐式游标的select语句必须要有into子句。
而select*fromtemp_syckzl_zy这是一个没有意义的语句;
应改为如:selectcol1intov_col1fromtemp_syckzl_zy;
注:col1为表中一字段,v_col1为一变量
❺ oracle存储过程中 未找到数据 异常的问题。。。
解决这个办法很多,按提问者的意思,异常肯定是no
data
found,这个时候你需要检查在哪出现的这个异常,如果数据不多的话,你可以用一条一条记录的去试,如果数据量大的话那直接在每个select前先选出count(*)
into
counts,当
counts<>
0的时候再让它执行下边的语句,或者直接存储工程中加异常处理的语句,我一般遇到这种情况都是用第一种,很简单但是很实用,屡试不爽。哈哈,如果有机会再交流交流
❻ oracle 存储过程中出现异常的处理
异常是执行这个存储过程出的异常吧,那就是说只有执行一次这个存储过程才会抛一次异常么?如果这样我建议你可以再写个存储过程来调用你这个存储过程,这样来记录异常的次数。然后再进行处理!
❼ oracle的存储过程中如何使得在执行出现异常时程序还可以继续执行
可能用异常处理
open cur_temp for vc_sql1;
loop
fetch cur_temp
into vc_prcname, vc_prctype;
exit when cur_temp%notfound;
vc_sql2 := '。。。';
begin
execute immediate vc_sql2; --这句代码有可能会执行出错,希望在执行出错时可以忽略该错误,继续往下循环,如何实现?
exception
when others then
end;
end loop;
close cur_temp;
试试这样行不行。