• sqlcode与sqlerrm的区别


    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
  • 相关阅读:
    埋点功能测试
    jmeter提取A接口返回值传入B接口
    css(2)---倒角阴影 框模型
    css(1)
    node 练习
    学习过程中遇到的问题及解决方法
    node.js(5)——mysql、连接池
    node.js(4)——中间件
    node.js(3)——express
    node.js(2)
  • 原文地址:https://www.cnblogs.com/xuyufengme/p/8027581.html
Copyright © 2020-2023  润新知