我在Web应用程序中使用PL / SQL。除了其他输入元素之外,其中一个HTML表单还有一个复选框组:
<label><input type="checkbox" name="included_colors" value="red"> Red</label>
<label><input type="checkbox" name="included_colors" value="green"> Green</label>
<label><input type="checkbox" name="included_colors" value="red"> Purple</label>
用户可以选择
接收程序有#34;签名&#34;,它为复选框指定owa_util.ident_arr
数据类型映射:
PROCEDURE report(
included_colors IN owa_util.ident_arr, /*<<<<<<< checkboxes */
region IN VARCHAR2 DEFAULT NULL
)
如果用户检查一个或多个选项,一切都很有效。 如果用户没有检查任何选项,Oracle会返回此错误:
PLS-00306:呼叫号码或类型的参与者报告&#39;
我可以在提交表单中添加一个隐藏字段(即<input type="hidden" name="included_colors" value="ignore_me" />
)以规避类似NULL的可能性,但这会产生一些不必要的下游后果。
我看到OWA_UTIL.vc_arr的默认值为null_vc_arr
。 OWA_UTIL.ident_arr的类似NULL的默认值是什么?
我试过null_ident_arr
......没有快乐:
PLS-00201:已识别&#39; NULL_IDENT_ARR&#39;必须声明
答案 0 :(得分:4)
声明类型为owa_util.ident_arr
的包变量,并将其用作默认值。
create or replace package test_array as
null_ident_arr owa_util.ident_arr;
procedure report(
included_colors IN owa_util.ident_arr default null_ident_arr, /*<<<<<<< checkboxes */
region IN VARCHAR2 DEFAULT NULL
);
end test_array;
/