我在 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>
用户可以选择
- 这些选项都没有,或者
- 以下选项之一,或
- 多个选项。
接收过程有这个“签名”,它指定了 owa_util.ident_arr
复选框的数据类型映射:
PROCEDURE report(
included_colors IN owa_util.ident_arr, /*<<<<<<< checkboxes */
region IN VARCHAR2 DEFAULT NULL
)
如果用户选中一个或多个选项,一切都会很好。 如果用户未检查任何选项,Oracle 将返回此错误:
PLS-00306: WRONG NUMBER OR TYPE OF ARGUMENTS IN CALL TO 'REPORT'
我可以向提交表单添加一个隐藏字段(即 <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: identified 'NULL_IDENT_ARR' must be declared
最佳答案
声明一个 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;
/
关于oracle - OWA_UTIL.ident_arr 的类似 NULL 的默认值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132807/