sqlCode:是数据库操作的返回码,其中0--成功;-1--失败;100--没有检索到数据。

sqlerrm:是数返回指定错误代码的错误信息。

在一个内在的异常中,SQLCODE返回Oracle错误的序号,而SQLERRM返回的是相应的错误消息,错误消息首先显示的是错误代码。

SQLCODE返回的是负数,除非Oracle的错误为“ORA-01403:NO DATA FOUND”(译:ORA-01403:未找到数据),

当Oracle错误为“ORA-01403:NO DATA FOUND”时,其对应的SQLCODE为+100。

对于用户自定义的异常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception。
  
一个Oracle的错误消息最多只能包含512个字节的错误代码。

如果没有异常被触发,则SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。

sqlerrm如何使用?
sqlcode和sqlerrm是不能直接在sql语句中使用,必须先将其赋给变量后,才能在sql语句中使用,如下:

DECLARE
v_ename emp.ename%TYPE;
e_norecord EXCEPTION;
PRAGMA EXCEPTION_INIT (e_norecord, -20001); err_num NUMBER;
err_msg VARCHAR2(100); BEGIN SELECT ename INTO v_ename FROM emp WHERE empno=3000; EXCEPTION
WHEN OTHERS THEN
err_num := SQLCODE;
err_msg := SUBSTR(SQLERRM, 1, 100);
DBMS_OUTPUT.PUT_LINE(err_num||'----'||err_msg);
END; 运行结果:
anonymous block completed
100----ORA-01403: no data found

sqlcode与sqlerrm的区别的更多相关文章

  1. SQLCODE和SQLERRM .

    Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息. OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕 ...

  2. Oracle内置函数SQLCODE和SQLERRM的使用

    在我们写proc程序中经常要有错误处理,在错误处理中我们经常要输出错误信息来给帮助我们分析和解决错误原因,从而更正数据.这时候就会用到SQLCODE和SQLERRM. SQLCode:数据库操作的返回 ...

  3. 内置函数SQLCODE和SQLERRM的使用

    由于ORACLE的错信息最大长度是512字节,为了得到完整的错误提示信息,我们可用 SQLERRM 和 SUBSTR 函数一起得到错误提示信息,方便进行错误,特别是如果WHEN OTHERS异常处理器 ...

  4. sqlcode、sqlerrm

    Oracle里 非常有用的 两个变量,很少有人用. 标记一下

  5. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  6. hibernate内部测试题(附赠答案)

    一.选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分) 1.在Hibernate中,以下关于主键生成器说法错误的是( ). A.increment可以用于类型为long.short或by ...

  7. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  8. plsql基础

    语法:declare-->声明变量 begin-->执行部分 exception-->异常 end-->结束 / 最简单的程序:begin null; end; 输出语句:DB ...

  9. plsql 书写命名规范

    俗话说事不预则废,无规矩不成方圆. 对sql脚本程序的设计,个人认为应该是从编码规范开始. 前段时间公司一些同事提交的脚本,风格迥异,让我审核起来倍感难受,丝毫没有审核代码的快感. 特整理了公司部分常 ...

随机推荐

  1. 使用Swagger创建Api

    1.首先创建一个web项目,选择Mvc模板 2.右键点击引用.管理Nuget程序包,浏览 搜索Swagger,下载安装下面的包 3.安装完后在App_Start里面会出现SwaggerConfig.c ...

  2. C# Moq

    Moq 1 My Cases 1.1 简单入门 2 Reference 2.1 Methods 2.2 Matching Arguments 2.3 Properties 2.4 Events 2.5 ...

  3. c# winform devexpress TreeList过滤和绑定

    /// <summary> /// 模糊查询 /// </summary> /// <param name="str"></param&g ...

  4. 终于理解Macro: Tree-of-symbols , 几个特殊标记符号

  5. 一、NodeJS入门——准备工作(1)——NodeJS的安装

    目录 1.介绍 2.nodejs下载 3.nodejs安装 4.nodejs的简单实用 5.nodejs的经典入门:hello world 6.总结 1    介绍 这是一系列的内容主要是关于我在学习 ...

  6. ASP.NET----内置对象----Resuest

    Request对象可以获取包含用户的计算机.页面及浏览器的请求等相关信息. Request对象的属性: ①Form----------返回有关表单变量的集合 ②QueryString--------- ...

  7. Linux文本编辑器Vim使用

    1. 插入 o 在光标下插入新行 a 在光标后插入 i         在光标前插入 O 在光标上一行插入新行 A 在光标行尾插入 I 在光标行首插入 2.光标定位 gg 到第一行行首 G 到最后一行 ...

  8. Mysql数据库之调整最大连接数

    .查看最大连接数 show variables like '%max_connections%'; 2.修改最大连接数 set GLOBAL max_connections = 200; 以下的文章主 ...

  9. Centos7防火墙firewalled基本使用

    firewalld支持动态更新技术并加入了区域(zone)的概念.简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现 ...

  10. Compute Shader基础

    ComputeShader:     GPGPU:General Purpose GPU Programming,GPU通用计算,利用GPU的并行特性.大量并行无序数据的少分支逻辑适合GPGPU.平台 ...