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

    xiaoxiao2021-10-29  70

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

    一,能查询到记录

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

           1、字段有值

          2、字段值为NULL

    二、查询不到记录,COUNT返回为0

    --一下是代码测试情况

    -测试 SQL> select empno,sal,comm from emp where empno=7369;      EMPNO        SAL       COMM ---------- ---------- ----------       7369        800 SQL> declare v_empno number(6);   2  v_sal number(6);   3  v_comm number(6);   4  begin   5  select empno,sal,comm into v_empno,v_sal,v_comm from emp where empno=7369;   6  dbms_output.put_line('empno='||v_empno);   7  dbms_output.put_line('sal='||v_sal);   8  dbms_output.put_line('comm='||v_comm);   9  end;  10  / empno=7369 sal=800 comm= SQL> declare v_empno number(6);   2  v_sal number(6);   3  v_comm number(6);   4  begin   5  select comm into v_comm from emp where empno=7369;   6  dbms_output.put_line('comm='||v_comm);   7  end;   8  / comm= SQL> select * from emp where empno=7368; 未选定行 --未查询到记录,直接赋值则会抛出异常,针对这种情况,应做异常情况判断处理

    SQL> declare v_empno number(6);   2  v_sal number(6);   3  v_comm number(6);   4  begin   5  select comm into v_comm from emp where empno=7368;   6  dbms_output.put_line('comm='||v_comm);   7  end;   8  / declare v_empno number(6); * 第 1 行出现错误: ORA-01403: 未找到数据 ORA-06512: 在 line 5 SQL> declare v_comm number(6);   2  begin   3  select comm into v_comm from emp where empno=7368;   4  dbms_output.put_line('comm='||v_comm);   5  exception   6  when others then   7  dbms_output.put_line('no_date_found');   8  end;   9  / no_date_found PL/SQL 过程已成功完成。 --处理空记录情况 SQL> declare v_comm number(6);   2  v_cnt number(6);   3  begin   4  select count(*) into v_cnt from emp where empno=7368;   5  if v_cnt > 0 then   6  select comm into v_comm from emp where empno=7368;   7  dbms_output.put_line('comm='||v_comm);   8  end if;   9  exception  10  when others then  11  dbms_output.put_line('no_date_found');  12  end;  13  / PL/SQL 过程已成功完成。

    转载请注明原文地址: https://ju.6miu.com/read-677859.html

    最新回复(0)