当前位置:首页 » 存储配置 » oracle存储抛出异常

oracle存储抛出异常

发布时间: 2022-09-03 18:49:01

‘壹’ oracle 存储过程中出现异常的处理

异常是执行这个存储过程出的异常吧,那就是说只有执行一次这个存储过程才会抛一次异常么?如果这样我建议你可以再写个存储过程来调用你这个存储过程,这样来记录异常的次数。然后再进行处理!

‘贰’ oracle 存储过程报错

oracle 存储过程的基本语法

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...

3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;

4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;

5.变量赋值
V_TEST := 123;

6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;

7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;

8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

‘叁’ java调用oracle存储过程抛出Raise_Application_Error("....."); 在java中应该用哪个异常类型捕获

把异常放到OUT参数里,然后用JAVA取出来就可以了。

‘肆’ 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;

试试这样行不行。

‘伍’ ORACLE怎么在子存储过程中抛出异常,父存储过程捕捉子存储过程抛出的异常,有没有例子呀

把子存储过程中的异常处理去掉,父存储过程就能捕捉到异常了

‘陆’ 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存储过程中遇到主键冲突会抛出异常还是继续执行

分情况操作,如果是循环入库的话,抛异常时判断是否是主键冲突,然后继续继续执行下一条继续进行添加操作,如果是单个数据入库直接抛异常

‘捌’ Oracle 存储过程怎么抛出异常

你说的异常是什么意思?如果是,执行中的错误,那么可以用“调试”,不过需要有一个系统权限的拥护才能调试,权限好象是什么debug XXXXX。
如果说的是有时执行因为这样那样的数据问题出现的异常,那么一般都是通过exception来抛出异常的,这样的抛出的异常,你可以自己编代码,然后输入一张表内,这样就可以捕获异常了。如果1表示没有主键,2表示数据超长等等。具体的写法网上很多,这里就不写了。

‘玖’ oracle存储过程怎么报异常

在存储过程内部利用EXCEPTION语句捕获和处理异常。

‘拾’ oracle存储过程出现异常后可以继续执行吗

这个要看异常捕捉处理程序放在哪,从出现异常到异常处理之间的程序应该是不执行的

热点内容
沙箱脚本 发布:2025-01-09 02:53:15 浏览:459
数据库第二范式 发布:2025-01-09 02:44:39 浏览:253
linuxtelnet开启 发布:2025-01-09 02:43:27 浏览:578
python中平方 发布:2025-01-09 02:43:18 浏览:530
ftp安装有版本要求吗 发布:2025-01-09 02:42:25 浏览:913
腾讯视频的存储位置 发布:2025-01-09 02:40:41 浏览:85
yum升级php 发布:2025-01-09 02:39:00 浏览:932
安卓版真三国无双在哪里下载 发布:2025-01-09 02:38:02 浏览:524
登陆页面源码 发布:2025-01-09 02:13:04 浏览:540
Uc浏览器上传 发布:2025-01-09 01:50:16 浏览:531