此查询返回我希望在Oracle apex的SQL命令窗口中显示的复选框html:
SELECT APEX_ITEM.CHECKBOX2(1,empno,DECODE(deptno,10,'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10
i.e. <input type="checkbox" name="f01" value="7782" CHECKED />
但如果我明确命名我的参数,我就得不到正确的结果:
SELECT APEX_ITEM.CHECKBOX2(p_idx=>1,p_value=>empno,p_checked_values=>DECODE(deptno,10, 'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10
<input type="checkbox" name="f01" value="7782" />
我不明白为什么根据文档命名参数会导致此问题。这是来自在线文档:
APEX_ITEM.CHECKBOX2(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT NULL,
p_attributes IN VARCHAR2 DEFAULT NULL,
p_checked_values IN VARCHAR2 DEFAULT NULL,
p_checked_values_delimiter IN VARCHAR2 DEFAULT ':',
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
答案 0 :(得分:2)
唯一的区别是“CHECKED”?
您使用p_checked_values
错误:
p_checked_values
:默认情况下要检查的值
基本上,在使用p_checked_values
时,您会传入一个分隔值列表,'CHECKED'
指标将用于列表p_value
中p_checked_values
的位置(由分隔符参数p_checked_values_delimiter
)。它之前工作的原因是你将它作为第三个参数传递,实际上是p_attributes
,它直接进入生成的HTML标记而不进行解析或更改。要修复您的代码,请使用以下内容,因为'CHECKED'
属性不是由传递给p_value
的值决定的:
SELECT APEX_ITEM.CHECKBOX2(p_idx=>1,p_value=>empno,p_attributes=>DECODE(deptno,10, 'CHECKED',NULL)) "Select", ename, job
FROM emp
WHERE deptno = 10