微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oracle数据库字段NULL赋值情况处理

在存储过程中常用到字段值赋给变量的情况,此时主要会出现两种情况

一,能查询到记录

记录中字段值又分两种情况

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过程已成功完成。

原文地址:https://www.jb51.cc/oracle/211744.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐