加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 15:42:59 所属栏目:百科 来源:网络整理
导读:在存储过程中常用到字段值赋给变量的情况,此时主要会出现两种情况 一,能查询到记录 记录中字段值又分两种情况 1、字段有值 2、字段值为NULL 二、查询不到记录,COUNT返回为0 --一下是代码测试情况 -测试 SQLselectempno,sal,commfromempwhereempno=7369; E

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

一,能查询到记录

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读