APEX Shuttle - 获取更多选定值

时间:2013-04-16 13:52:51

标签: sql plsql oracle-apex

我在APEX的某些日子里工作,我添加了一个Shuttle也是一个文本字段,包含在处理所选值之后。

我已经制作了一辆LOV(包含车站) 例: 是 FD 金 ...

目标是获取包含所选站点的所有对象 但如果我运行选择我得到更多的对象 - 也包括不包含任何选定的站的对象,但我不知道为什么

在SQL语句中我有以下内容:(ds_bess001是站点的字段)

AND INSTR (:P4_BES_EN, zl.ds_bes001) > 0

我使用下面的PL / SQL

DECLARE
   v_selected   APEX_APPLICATION_GLOBAL.VC_ARR2;
   v_in_text    VARCHAR2 (500) := '';
BEGIN
   v_selected := APEX_UTIL.STRING_TO_TABLE (:P4_BES);

   FOR i IN 1 .. v_selected.COUNT
   LOOP
      v_in_text := v_in_text || v_selected (i);

      IF i < v_selected.COUNT
      THEN
         -- v_in_text := v_in_text || ', ';
         v_in_text := v_in_text || ',';
      END IF;
   END LOOP;

   -- v_in_text := '''' || replace(:P1_SHUTTLE, ':', ''',''') || '''';
   :P4_BES_EN := v_in_text;
END;

有人可以帮我吗?!

现在我发现问题我得到了变量示例Ap','Fd','Ab和问题就是变量在开头和结尾都错过了'

任何人都可以告诉我如何在变量中添加缺失的'

1 个答案:

答案 0 :(得分:0)

尝试

:P4_BES_EN := ''''||v_in_text||'''';

表示'在开头和结尾。

我觉得你必须把你的instr改成这样的东西

:P4_BES_EN := ','''||v_in_text||''',';

AND INSTR (:P4_BES_EN, ','||zl.ds_bes001||',') > 0

e.g:

DECLARE
  v_in_text    VARCHAR2 (500) := 'Ap'',''Fd'',''Ab';
BEGIN
  v_in_text :=  ','''||v_in_text||''',';
  dbms_output.put_line(v_in_text);
END;