ag娱乐建设网站,游戏开发有前途吗,dz网站自己做的模板放在哪里,爱采购官网首页2019独角兽企业重金招聘Python工程师标准 CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE IS --异常分为#xff1a;编译是错误(语法错误)、运行时错误(编译器无法检查#xff0c;对应某些情况程序是可以正常执行的#xff0c;但在某些特点情况下程序不会正确执… 2019独角兽企业重金招聘Python工程师标准 CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE IS --异常分为编译是错误(语法错误)、运行时错误(编译器无法检查对应某些情况程序是可以正常执行的但在某些特点情况下程序不会正确执行) --内置异常oracle中把一些常见的运行时错误预定义为异常一个ora-xxxx表示一种错误。如ora-01476表示zero_divide错误。内置异常是隐式抛出的当发生 -- 特定错误是与该错误相关的内置异常就会抛出。 PROCEDURE TEST_001 is begin TEST_002; EXCEPTION when value_error or invalid_number then dbms_output.put_line(2种异常中一种||SQLERRM); WHEN OTHERS THEN dbms_output.put_line(error||SQLERRM); end TEST_001; PROCEDURE TEST_002 is custTelephoneId nbz_cust_telephone.id_nbz_cust_telephone%type; begin SELECT SYS_GUID() into custTelephoneId FROM DUAL; insert into nbz_cust_telephone (id_nbz_cust_telephone, tele_type_code, id_nbz_customer, tele_num, is_current_dailed, is_default_contact) values (null, null, null, null, null, null); commit; end TEST_002; /* * 如果语句块中定义一个异常该异常是本语句块专用的但是该异常适用于该语句块包含的任何语句块。(在语句块嵌套的情况下外包语句块定义的任何异常读适用于内部语句块) * no_data_found异常适用于inner block当然也适用于outer block.而value_error异常只适用于inner block.这种内部异常传递给外部处理的过程叫异常传播。 */ PROCEDURE TEST_003 is v_status_code nbz_task.task_status_code%type; v_count number(10); --outer block begin select nt.task_status_code into v_status_code from nbz_task nt where nt.id_nbz_task100254236; --inner block begin select 0 into v_count from nbz_task nt where nt.id_nbz_batchI_20090212_0004; --这个语句可能出现no_data_found异常 exception when value_error or invalid_number or too_many_rows then dbms_output.put_line(3种异常中一种||SQLERRM); end; EXCEPTION WHEN no_data_found THEN dbms_output.put_line(error||SQLERRM); end TEST_003; /* * 自定义异常 * */ PROCEDURE TEST_004 is v_count number(10) :0; my_exception exception; begin select count(*) into v_count from nbz_task nt where nt.id_nbz_batchI_20090212_0004; if v_count0 then raise my_exception;--自定义异常要显示抛出。内置异常会隐式抛出的。 end if; EXCEPTION WHEN my_exception THEN dbms_output.put_line(error||SQLERRM); end TEST_004; /* * 声明部分的异常不会被处理 * 需要把 */ PROCEDURE TEST_005 is begin declare--需要嵌套 v_test_var char(3):ABCDE; begin dbms_output.put_line(进来了...||v_test_var); EXCEPTION WHEN invalid_number or value_error THEN dbms_output.put_line(error||SQLERRM);--此处不会被处理。尽管在v_test_var定义部分会抛出value_error异常但不会被这里处理 end; EXCEPTION WHEN invalid_number or value_error THEN dbms_output.put_line(error||SQLERRM);--在此处处理。 end TEST_005; END TEST_PACKAGE; 转载于:https://my.oschina.net/u/729507/blog/76979