sqlcode和sqlerrm:a、另外一种处理数据库错误的方法是使用内建函数sqlcode和sqlerrm;b、sqlcode将返回现行数据库错误号,这些错误号中除了no_data_found是+100外其他都是负数;c、sqlerrm返回文本描述的错误信息;d、为了获得用户自定义异常返回的sqlerrm和sqlcode,你需要使用raise_application_error函数给自定义异常标注错误号...
error_number 是一個整數值或運算式,當執行預存程序時在名為 SQLCODE 的變數中返回。error_number 必須是介於 -20000 和 -20999 之間的值。 message 是一個字串文本或運算式,在名為 SQLERRM 的變數中返回。 以下樣本使用 RAISE_APPLICATION_ERROR 預存程序根據員工缺少的資訊,顯示不同的代碼和訊息。 CREATE OR...
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM); END; 用户自定义异常处理 用户定义的异常错误是通过显式使用RAISE语句来触发。 1、在PL/SQL块的定义部分定义异常情况; 2、RAISE <异常情况>; 3、在PL/SQL块的异常情况处理部分对异常情况做出相应的处理。 DECLARE v_empno employees.employee...
'员工编号不能为空');7ELSIF ... THEN8RAISE_APPLICATION_ERROR(-20001,'员工已存在');9END IF;10...11EXCEPTION12WHEN OTHERS THEN13RAISE_APPLICATION_ERROR(-20003,'插入数据时出现错误!异常编码:'14||SQLCODE15||'异常描述:'16||SQLERRM);17END;...
sqlcode和sqlerrm: a、另外一种处理数据库错误的方法是使用内建函数sqlcode和sqlerrm; b、sqlcode将返回现行数据库错误号,这些错误号中除了no_data_found是+100外其他都是负数; c、sqlerrm返回文本描述的错误信息; d、为了获得用户自定义异常返回的sqlerrm和sqlcode,你需要使用raise_application_error函数给自定义异常标注...
error_number 是一个整数值或表达式,当执行存储过程时在名为 SQLCODE 的变量中返回。error_number 必须是介于 -20000 和 -20999 之间的值。 message 是一个字符串文本或表达式,在名为 SQLERRM 的变量中返回。 以下示例使用 RAISE_APPLICATION_ERROR 存储过程根据员工缺少的信息,显示不同的代码和消息。
error_numberis an integer value or expression returned in a variable namedSQLCODEwhen the procedure is executed. The value is between‑20000and-20999. messageis a string literal or expression returned in a variable namedSQLERRM. For more inf...
41 v_error_code :=SQLCODE; 42 IF v_error_code =-2292 THEN 43 RAISE_APPLICATION_ERROR(-20004,'Organization '||TO_CHAR(p_company_id)||' site details defined for it.'); 44 END IF; 45 END; 46 END IF; 47 END; 48 / Procedure created. ...
no_result EXCEPTION;--1、定义BEGINUPDATEemployeesSETsalary=salary+100WHEREemployee_id=v_empno;IFSQL%NOTFOUNDTHENRAISE no_result;--2、抛出ENDIF;EXCEPTIONWHENno_resultTHEN--3、处理DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);END;...
PROCEDURE raise ( errcode IN PLS_INTEGER := NULL, errmsg IN VARCHAR2 := NULL ) IS l_errcode PLS_INTEGER := NVL (errcode, SQLCODE); l_errmsg PLS_INTEGER := NVL (errmsg, SQLERRM); BEGIN IF l_errcode BETWEEN -20999 AND -20000 THEN RAISE_APPLICATION_ERROR (l_errcode, l_errmsg); /*...