有如下程序:
r_rec 和r_msg 是两个行变量 r_rec.a:= r_msg.a;
r_rec.b:= r_msg.b;
r_rec.c:= r_msg.c;insert into table1 VALUES r_rec;其中r_msg.a为空,赋值后r_rec.a也为空,表table1中a字段的默认值为0,但插入提交后,查询表该字段仍未空。
此程序在一个包中的存储过程里。debug直到插入前的最后一步,r_rec.a都为空。请教大家这有可能是什么原因造成的?

解决方案 »

  1.   

    空和null的概念是不一样的。
    你插入null而不是空,默认值就应该有效了。
      

  2.   

    首先你不是很了解默认值的概念哦.
    默认值是你对该列不插入的情况下给的一个
    默认值.
    1楼的说法也是不对的.
    对该列插入空字符串或者插入null默认值都
    会不起作用的.楼主想让默认值生效的话.应该加一个判断.
    如果不为空字符串或null则将值插入这个列.
    否则不插入.