oracleexception(oracle 中的 exception when others then 捕获异常 在db2中怎么写)
本文目录
- oracle 中的 exception when others then 捕获异常 在db2中怎么写
- oracle exception
- oracle exception问题续
- oracle怎么获取exception信息
- oracle存储过程exception 后面的代码要不要end结束啊还是说exception后面的所有代码都属于它的呢
- linux系统上安装oracle到运行runInstaller的时候出现Exception
oracle 中的 exception when others then 捕获异常 在db2中怎么写
db2中类似oracle的异常捕获写法:举例如下:CREATE PROCEDURE OUT_LANGUAGE (...,OUT returnCode INTEGER, OUT returnMsg CHAR(32)) -- returnCode 返回执行中的的错误代码 -- returnMsg 返回执行中的的错误描述 SPECIFIC SQL_OUT_LANGUAGE LANGUAGE SQL BEGIN DECLARE SQLCODE INTEGER DEFAULT 0; DECLARE SQLSTATE CHAR(5) DEFAULT ´00000´; DECLARE errorLabel CHAR(32) DEFAULT ´´; ...... -- in case of no data found DECLARE CONTINUE HANDLER FOR NOT FOUND BEGIN SET returnCode = SQLCODE; -- 也可以设置为 SET returnCode = 0; 因为这个DECLARE是为了忽略NOT FOUND的执行结果 END; -- in case of SQL error DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN SET returnCode = SQLCODE; SET returnMsg = errorLabel; END;
oracle exception
/**********系统提供异常**********/declare v_name varchar2(10);begin select name into v_name from table_name where id=’1’; ;exception where no_data_found then update table2 set col2=’没有找到数据’;end ;/**********自定义异常**********/declare v_name varchar2(10); e exception; --定义异常begin select name into v_name from table_name where id=’1’; ; if v_name = ’自定义值’ then raise e; --提取异常 end if;exception when e then update table2 set col2=’没有找到数据’;end;
oracle exception问题续
-- cursor 定义为for update 时,fetch的时候不能有commit 及 rollback命令的。-- 否则会报ORA-01002: 读取违反顺序 错误declare cursor mycur is select * from scott.emp1 for update; excep_emp exception; excep_others exception;begin for v_emp in mycur loop begin -- 先检查是否超过5000 if v_emp.sal》5000 then raise excep_emp; end if; -- 然后在更新 dbms_output.put_line(v_emp.ename || ’调整前的工资为:’ || v_emp.sal); update scott.emp1 set sal=1.5*sal where current of mycur; dbms_output.put_line(v_emp.ename || ’调整后的工资为:’ || v_emp.sal * 1.5); exception when excep_emp then dbms_output.put_line(’该员工的工资不能超过5000’); when others then -- 程序错误 抛出异常 停止运行 dbms_output.put_line(’Error0:’ || sqlerrm); raise excep_others; end; end loop; -- 统一提交, commit; exception when excep_others then rollback; when others then dbms_output.put_line(’Error1:’ || sqlerrm);end;
oracle怎么获取exception信息
通过如下代码:
public static String getExceptionAllinformation(Exception ex){
String sOut = "";
StackTraceElement trace = ex.getStackTrace();
for (StackTraceElement s : trace) {
sOut += "\tat " + s + "\r\n";
}
return sOut;
}
扩展资料:
注意事项
oracle存储过程,可以通过sqlcode 获取异常编码、通过sqlerrm获取异常信息。
例子:
create or replace procedure write2blob(p_id in number, --id
p_blob_data in blob,
p_msg out varchar2) --数据
is
v_lobloc blob; --目标blob
v_blob_data blob; --作为接受参数的字段,参数变量不能直接拿来赋值
v_amount binary_integer; --总长度
v_sub_length binary_integer; --一次读取的最大长度,不超过32766
v_sub_blob blob; --一次读取的子串
v_offset binary_integer; --游标
v_err_msg varchar2(1000);
v_id binary_integer; --要修改或新增的记录ID
v_temp binary_integer; --临时变量用于判断是否有v_id对应的记录begin
v_amount := length(p_blob_data);
v_blob_data := p_blob_data;
v_sub_length := 32767;
v_offset := 1;
v_id := p_id;
v_temp := 0; --execute immediate v_query_string into v_lobloc;
select count(1) into v_temp from a where id = v_id; --查询是否有v_id对应的记录,并且赋值给v_te/*注意:无论是修改还是新增,blob字段都需要用empty_blob()进行初始化,否则后边的blob内容,不能写进表里面。
oracle存储过程exception 后面的代码要不要end结束啊还是说exception后面的所有代码都属于它的呢
declare v varchar2(32);begin begin select dummy into v from dual where dummy = ’’; exception when others then dbms_output.put_line(’1’); end; dbms_output.put_line(’2’);end;可以自己试一下,把可能发生异常的代码放到begin end块中,exception后end前都属于异常执行范围,end后代码不在异常范围内。
linux系统上安装oracle到运行runInstaller的时候出现Exception
同求解,我也遇到了这个问题,设置了java的CLASSPATH还是报这个错误,也重启了.bash_profile,搞不懂了-- 当年我的回答可能技术水平太差,现在来看,这个问题其实就是你的响应文件有问题(如果是静默安装的话),检查一下里面的配置项是不是写错了,比如SID等等。如果是GUI图形界面安装,看一下环境变量,还有配置选项的选择是不是有问题,填写的信息是不是正确。--这个错误基本都是在配置上出现的问题。那个javaXXX什么的不用去管,基本不是java的问题。如果配置错误,后面还会出现一堆java.xxxx开头的报错。好好检查响应文件和配置。
更多文章:
联想天逸f30a驱动(联想天逸F30驱动按什么顺序装 等用 谢谢)
2024年5月26日 02:16
智能手机功能(智能手机是现代社会离不开的通信工具,你玩手机熟练它们的功能吗知道多少)
2024年5月15日 03:41
IBM为何不愿修复第三方免费提交的IDRM零日漏洞?企业管理咨询在企业发展过程起到什么作用
2023年1月17日 17:00
最靠谱的硬盘修复软件(如何评价DiskGenius这款软件)
2024年5月15日 10:23
蓝魔鬼电影影评(主角是一个身体蓝色长着恶魔尾巴的人叫什么电影)
2024年10月3日 00:55
电脑是一体机好还是带主机的好(买电脑的话,是一体机好点,还是带主机的好呢)
2023年10月6日 09:15
丽台quadro k600(丽台NVIDIA Quadro K600 1G DDR3功耗多少瓦)
2023年1月27日 08:30