oracle sqlcode 多条,oracle sqlerrm和sqlcode函数
1.oracle sqlcode函数
sqlcode函数用来返回pl/sql执行内部异常代码。
语法:sqlcode
oracle sqlerrm函数
sqlerrm函数返回指定错误代码的错误信息。
语法:SQLERRM [(error_number)]
2.sqlerrm如何使用?
sqlcode和sqlerrm是不能直接在sql语句中使用,必须先将其赋给变量后,才能在sql语句中使用,如下:
dw@dw>declare
2 v_sqlcode number;
3 v_sqlcode1 number;
4 v_sqlerrm varchar2(510);
5 begin
6 v_sqlcode :=sqlcode;
7 select v_sqlcode into v_sqlcode1 from dual;
8 end;
9 /
PL/SQL 过程已成功完成。
sqlerrm用得最多的是在pl/sql编程中来捕获异常的详细信息,特别是在when others 中使用非有用。
如下:
view plaincopy to clipboardprint?
set serveroutput on
declare
v_count pls_integer;
begin
begin
select 2 into v_count
from dual where 1>2;
exception
when others then
dbms_output.put_line(sqlerrm);
end;
begin
select level into v_count
from dual
connect by level < 3;
end;
end;
/
dw@dw>set serveroutput on
dw@dw>declare
2 v_count pls_integer;
3 begin
4 begin
5 select 2 into v_count
6 from dual where 1>2;
7 exception
8 when others then
9 dbms_output.put_line(sqlerrm);
10 end;
11 begin
12 select level into v_count
13 from dual
14 connect by level < 3;
15 end;
16 end;
17 /
ORA-01403: 未找到任何数据
declare
*
第 1 行出现错误:
ORA-01422: 实际返回的行数超出请求的行数
ORA-06512: 在 line 12
3.sqlerrm的最大长度是多少?
其实这个问题很好解答,自定义一个异常,然后用sqlerrm去捕获即可。
view plaincopy to clipboardprint?
set serveroutput on
begin
raise_application_error(-20001,
'sqlerrm的最大长度是多少' || lpad('我', 10000, '我'));
exception
when others then
dbms_output.put_line(lengthb(sqlerrm));
end;
/
dw@dw>begin
2 raise_application_error(-20001,
3 'sqlerrm的最大长度是多少' || lpad('我', 10000, '我'));
4 exception
5 when others then
6 dbms_output.put_line(lengthb(sqlerrm));
7 end;
8 /
510
PL/SQL 过程已成功完成。
dw@dw>
从输出结果来看,oracle sqlerrm的最在长度为510个字节。
4.oracle ora-错误信息手册
从oracle的参考文档中,可以发现自定义异常从-20000开始,也就是说,-20000前的数据都是oracle内部使用的,
可以通过下面这段匿名块查出oracle所有ora-错误信息。
view plaincopy to clipboardprint?
set serveroutput on
exec dbms_output.enable(10000000);
begin
for i in 0..20000 loop
dbms_output.put_line(sqlerrm(-i));
end loop;
end;
/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26953882/viewspace-723344/,如需转载,请注明出处,否则将追究法律责任。
oracle sqlcode 多条,oracle sqlerrm和sqlcode函数相关推荐
- oracle 插入一个语句,oracle如何通过1条语句插入多个值 oracle通过1条语句插入多个值方法...
本篇文章小编给大家分享一下oracle通过1条语句插入多个值方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用 ...
- oracle将千万行查询优化到一秒内,oracle下一条SQL语句的优化过程(比较详细)
oracle下一条SQL语句的优化过程(比较详细) 更新时间:2010年04月14日 23:56:49 作者: 很简单的一次调整,语句加了适当的索引后性能就有大幅的提升.当时看到这条语句的时候,第 ...
- oracle寻找第一条数据,oracle 获取第一条数据
关于取第一条数据的sql特此作了一个例子如下: SELECT * FROM tableName where fd_rt = 'A' --and rownum=1 ORDER BY fd_date DE ...
- oracle看一条sql的trace,SQL_TRACE和10046事件详解
sql_trace和10046事件都是我们在优化sql上面应用的非常多的工具,我们可以使用这两个工具知道当前正在执行的sql究竟在做什么 一,SQL_TRACE: SQL_TRACE命令会将执行的整个 ...
- oracle如何获取异常,Oracle专题13之异常错误处理
异常:是程序在正常执行过程中发生的未预料的事件. b.什么是异常处理? 异常处理是为了提高程序的健壮性,使用异常处理部分可以有效地解决程序正常执行过程中可能出现的各种错误,使得程序正常运行. c.异常 ...
- ibatis oracle function,IBATIS调用oracle function(函数)的步骤实例
IBATIS调用oracle function(函数)的方法实例 引用 create or replace function getClassifiedCode(p_planCode in varch ...
- oracle返回0001错误,ORACLE 异常错误处理
本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2 ...
- oracle异常抛出,ORACLE 存储过程异常捕获并抛出
for tab_name in tables loop execute immediate 'drop table '||tab_name; --此处可能会报错 end loop; 当前情况是,循环表 ...
- mysql与oracle存储过程_mysql与oracle存储过程对比
一.创建存储过程语句不同 mysql DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`; create procedure P_ADD_FAC(id_fac_c ...
- oracle proc 定义宿主,oracle proc 编程基础及最小化案例
oracle proc 编程是在我的概念中是非常陌生的,学习了一天下来发现这东西真的好古老,但是依然健壮.稳定,其中间是编辑一个 .pc 的文件使用 proc 进行预处理,预处理后生成一个真正的.c文 ...
最新文章
- 雇佣和留住开发人员,打造优秀的团队
- dwarf tower
- python urllib dns 缓存_新手用Python做一个网页爬虫
- PHP中封装mysql数据库链接(简单版)
- 最暖数据: 除夕有6.88亿人用微信红包传递狗年祝福
- 什么是异常 java 1615309028
- 华为鸿蒙搭载哪些手机,华为鸿蒙系统支持哪些手机 可以装华为鸿蒙系统手机...
- SpringCloud——服务短路
- 【语音处理】基于matlab GUI音频信号处理(调音+调速+调频+滤波)(带面板)【含Matlab源码 299期】
- 刘汝佳--小学生算数
- Vue模板语法——插值
- A股各概念板块龙头股大全
- 乐高打印机robotc
- jboot 配置durid + logback debug打印 sql+执行参数(非?)
- 微信小程序毕业设计开题报告医院预约挂号小程序+后台管理系统|前后分离VUE.js
- 首期「OSCHINA 开源软件趋势榜」榜单公布 | 有奖征文等你来
- 51nod 1556 计算(默慈金数)
- WPA3 vs WPA2(转)
- [wp7软件]相机 画图 截屏 photo 集合 软件(一)
- 最新 955 不加班的公司名单(2022 版)
热门文章
- iQOO Neo6 SE什么时候发布 iQOO Neo6 SE配置如何
- Node之HTTPS客户端
- VISIO2016的安装报错
- 大杀器TheFatRat
- python手机版做小游戏代码大全-12岁的少年教你用Python做小游戏
- 流畅的python不适合初学者_年度最值得关注Python进阶书——《流畅的Python》
- 四叶草efi_四叶草启动器Clover EFI bootloader v5.0 r5111最新版
- IDEA-------Webstorm主题推荐
- 鸟哥的Linux私房菜-合集
- C# Gooflow+layer弹出层 全js代码