我试图建立一个包含以下内容的页面:
为实现这一点,我添加了一个中间的隐藏页面项( P16_INPUT_INTERMEDIATE ),在其中我将输入文本(在不同行上)转换为用单引号引起的逗号分隔文本字符串。
示例:
用户输入 P16_INPUT :
RTR123
RTR456
动态操作会调用一个(过于复杂的)PL / SQL表达式,该表达式填充 P16_INPUT_INTERMEDIATE :
declare
l_in varchar(4000);
l_int varchar(4000);
l_out varchar(4000);
begin
l_in := :P16_INPUT;
l_int := replace(l_in,Chr(13),''',''');
l_out := '''' || l_int || '''';
l_out := replace(l_out,Chr(10));
l_out := replace(l_out,Chr(9));
:P16_INPUT_INTERMEDIATE := l_out;
end;
产生: 'RTR123','RTR456'
动态操作还会刷新 output IR,该IR基于以下SQL语句:
select t1.id ,t1.b_seq , t1.s_seq, t1.back_seq
from v_export t1
where t1.id in (:P16_INPUT_INTERMEDIATE);
但是我总是回到一个空表。
如果我仅在 P16_INPUT 中输入1个ID,而跳过中间的 P16_INPUT_INTERMEDIATE ,则IR将正确填充1行结果。
答案 0 :(得分:0)
由于我还没有做很多事情,所以不确定如何确切地执行此操作,但是您要尝试执行的是动态SQL,即在运行时编译的SQL查询。 GL