记录字段没有默认值

时间:2013-10-17 12:50:53

标签: oracle plsql record varray

我有以下代码:

DECLARE
 TYPE rt_someDetails IS RECORD(
    deny_discount           VARCHAR2(4) DEFAULT 'NO');
 TYPE someDetails_va IS VARRAY(2) OF rt_someDetails;

 l_someDetails_va someDetails_va;
 l_rt_someDetails rt_someDetails;
BEGIN
 l_someDetails_va := someDetails_va();
 l_someDetails_va.EXTEND;

 -- when in varray, the default value doesn't show up
 dbms_output.put_line('From array:: ' || l_someDetails_va(1).deny_discount);

 -- However, when outside of varray, it works properly
 dbms_output.put_line('Directly from record var:: ' || l_rt_someDetails.deny_discount);
END;

为什么从varray中的记录中读取时,deny_discount的默认值是否显示?

1 个答案:

答案 0 :(得分:1)

扩展不会按照说法填充数组,它只是为将来的插入分配空间(想想NULL元素)

尝试创建记录并插入数组。简单地延伸不会显示任何内容。