select pk_period into v_pk_period_hb from demo_dim_period where datestr=v_datestr_hb;----当我查询记录中 pk_period 数据为空赋值怎么解决
后省略 nvl() 函数我早试过,不可以 第一、pk_period 不是数字类型 第二、datestr=v_datestr_hb v_datestr_hb的记录在数据库中不存在 所以查询出来的记录一行也没有 不知二位的结果是验证过没? 并且 select case when pk_period is null then '<N/A>' else pk_period end from demo_dim_period where datestr = '19990101'
这样也试过也不行
最新回答
心碎比心死更痛
2024-11-22 08:39:56
有2种方法解决 1 Select nvl(pk_period,null,'空值') Into 这样的话把空值赋个值了
2 用到EXCEPTION Begin Select aa Into bb From Talbe_Test; Exception When Others Then ... End aabb; ... End;
-----补充------ 一般而言 对空值的处理要用到nvl函数。 看我的示例: sql@kokooa>set serveroutput on; sql@kokooa> sql@kokooa>declare 2 var_name varchar2(20); 3 cursor test034_cur(p_test034_id number) is 4 select nvl(subject_name,'空值') from test034 where grade_id=p_test034_id; 5 begin 6 if test034_cur%isopen=false then 7 open test034_cur(3); 8 end if; 9 10 11 loop 12 fetch test034_cur into var_name; 13 14 exit when test034_cur%notfound; 15 dbms_output.put_line('课程名称为:'||var_name); 16 end loop; 17 18 close test034_cur; 19 end; 20 / 课程名称为:空值