在存储过程中常用到字段值赋给变量的情况,此时主要会出现两种情况
一,能查询到记录
记录中字段值又分两种情况
1、字段有值
2、字段值为NULL
二、查询不到记录,COUNT返回为0
--一下是代码测试情况
-测试 SQL>selectempno,sal,commfromempwhereempno=7369; EMPNOSALCOMM ------------------------------ 7369800 SQL>declarev_empnonumber(6); 2v_salnumber(6); 3v_commnumber(6); 4begin 5selectempno,commintov_empno,v_sal,v_commfromempwhereempno=7369; 6dbms_output.put_line('empno='||v_empno); 7dbms_output.put_line('sal='||v_sal); 8dbms_output.put_line('comm='||v_comm); 9end; 10/ empno=7369 sal=800 comm= 5selectcommintov_commfromempwhereempno=7369; 6dbms_output.put_line('comm='||v_comm); 7end; 8/ SQL>select*fromempwhereempno=7368; 未选定行 --未查询到记录,直接赋值则会抛出异常,针对这种情况,应做异常情况判断处理
5selectcommintov_commfromempwhereempno=7368; declarev_empnonumber(6); * 第1行出现错误: ORA-01403:未找到数据 ORA-06512:在line5 SQL>declarev_commnumber(6); 2begin 3selectcommintov_commfromempwhereempno=7368; 4dbms_output.put_line('comm='||v_comm); 5exception 6whenothersthen 7dbms_output.put_line('no_date_found'); 8end; 9/ no_date_found PL/SQL过程已成功完成。 --处理空记录情况 2v_cntnumber(6); 3begin 4selectcount(*)intov_cntfromempwhereempno=7368; 5ifv_cnt>0then 6selectcommintov_commfromempwhereempno=7368; 7dbms_output.put_line('comm='||v_comm); 8endif; 9exception 10whenothersthen 11dbms_output.put_line('no_date_found'); 12end; 13/ PL/SQL过程已成功完成。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|