1.预定义(Predefined)错误 常用的:没有结果:No_data_found 输出的行太多:Too_many_rows 2.非预定义(UnPredefined)错误 3.用户定义(User_define)错误 异常的格式: exception whenToo_many_rowsthendbms_output.put_line('输出的行数太多了'); 二:错误处理 1.预定义异常 [预定义异常]declarev_sal employees....
select deptno into v_id from emp where 1= 2;--no_data_found Exception --select deptno into v_id from emp where 1= 1/0;--ZERO_DIVIDE Exception Exception when ZERO_DIVIDE then dbms_output.put_line('ZERO_DIVIDE Exception'); when no_data_found then dbms_output.put_line('no_data_found...
如果当前捕获的异常 是“NO_DATA_FOUND”,SQLCODE函数的返回值为100;如 果是用户定义异常,则SQLCODE函数的返回值为1,或者是使 用EXCEPTION_INIT时为用户定义异常绑定的代码。 如果在异常处理器外部调用SQLCODE函数,则返回值为 0。 SQLERRM SQLERRM根据特定的错误代码返回错误的描述信息,最 大长度为512字节。调用形式...
错误代码ORA-01403,也有定义好的名字“not_data_found”。故可以直接用。 2、非预定义的异常处理 对于这类异常情况的处理,首先必须对非定义的ORACLE错误进行定义。步骤如下: (1)在PL/SQL 块的定义部分定义异常情况: <异常情况> EXCEPTION; (2)将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INI...
异常处理部分从关键字EXCEPTION开始,在异常处理部分使用WHEN字句捕捉各种异常,如果有其他未预定义到的异常,使用WHENOTHERSTHEN字句进行捕捉和处理。 1、处理预定义异常,这是系统预定的21种类型 错误代码是负整数,如-51 access_info_null(ora-06530) 当访问没有初始化的对象时触发。 Case_not_found(ora-...
index说明试图破坏一个唯一性限制 ORA-0051 ORA-0061ORA-1001ORA-1012ORA-1017ORA-1403ORA-1422 Timeout_on_resource Invalid_CURSORNot_logged_onLogin_deniedNo_data_foundToo_many_rows 在等待资源时发生超时 试图使用一个无效的游标没有连接到ORACLE无效的用户名/口令SELECTINTO没有找到数据SELECTINTO返回多行 ...
('Name: ' || v_name); EXCEPTION WHEN NO_DATA_FOUND THEN -- 如果没有找到匹配的记录,处理异常 DBMS_OUTPUT.PUT_LINE('No data found.'); WHEN TOO_MANY_ROWS THEN -- 如果找到多个匹配的记录,处理异常 DBMS_OUTPUT.PUT_LINE('Too many rows found.'); WHEN OTHERS THEN -- 处理其他异常 DBMS_...
exception when NO_DATA_FOUND then dbms_output.put_line('查无该部门员工'); insert into emp(empno,ename) values(1111,'ERROR'); end; / 存储过程和存储函数 在Oracle中,存储过程和存储函数的概念其实是差不多的,一般地,我们都可以混合使用。只不过有的时候有的情况使用过程好一些,有的情况时候函数的时候...
记住两个最常用的异常:NO_DATA_FOUND 、TOO_MANY_ROWS 当在exception段中定义了多个异常时,只会执行一个,之后跳出异常段。 2、值转换异常 SET SERVEROUTPUT ON; DECLARE x NUMBER; BEGIN x:= 'a123';--向NUMBER类型的变量x中赋值字符串,导致异常
则会发生NO DATA NEEDID的例外(NO DATA FOUND例外))。 程序中又没有处理这个例外,也就是说如果在例外处理部中未记述OTHERS处理程序或NO DATA NEEDID例外处理程序, 程序会以未处理例外的形式结束。 在这种情况下,表函数里边如果用UTL_FILE包等打开文件的话,就会以例外处理直接结束程序, ...