【发布时间】:2013-10-17 12:50:52
【问题描述】:
我有以下代码:
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 的默认值?
【问题讨论】:
-
扩展不会填充数组,它只是为将来的插入分配空间
-
所以我应该创建一条记录,将其插入到可变数组中,然后尝试访问该字段。回答问题,以便我接受您的回答。
标签: oracle plsql record varray