在存储过程里涉及处理一个表的一个字段a(clob),
给这个字段a查询赋值 select  a into b from table,
当 a 为 null 时 就报错,怎么捕捉判断为null时 赋值没有问题呢 

解决方案 »

  1.   

    到目前为止我还没有在过程中操作过blob。不过向你提供的select语句当没有满足条件的信息时,是会抛出异常的。所以在使用select into时,最好在过程捕获一下异常,如下:
    create or replace test_proc
    as
    l_b varchar2(10);
    begin
    select a into 1_b from table;
    exception
    when others then

    null;end;
      

  2.   

    这不失一种方法,在捕捉异常赋值一个变量,通过判断变量间接判断a是否null的,但最后还是涉及到添加到表中,有没有可以在prc中判断的 ,谢谢 楼上提供思路
      

  3.   

    突然想到 在存储过程里根据不同条件来判断a 是否为null,不同条件有不同结果,用异常捕捉来判断,两个结果不好判断
      

  4.   

    create or replace test_proc
    as
    l_b number:=0;
    being
    select count(*) into b from table where a is not null;
    if(b >0 )then
    --进行你的处理
    l_b :=0;--再把l_b赋值为0
    end if;
    end;
      

  5.   


    这个情况可能对你的案例不适用,不过如果你的表中还有其他字段的话,可以通过带条件的查询(该条件可以区分每条记录)。
    如果查询到了l_b>0了然后再根据唯一条件查询出a的内容。