0

我从几天开始就在 APEX 上工作,我添加了一个 Shuttle,还添加了一个文本字段,其中包含处理所选值后的内容。

对于班车,我制作了一个 LOV(包含车站)示例:Be Fd Au ...

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

在 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 问题是变量在开头和结尾错过了 '

有人可以告诉我如何在变量中添加缺少的 ' 吗?

4

1 回答 1

0

试试看

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

for ' 在开头和结尾。

我认为你必须将你的 instr 更改为这样的东西

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

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

例如:

DECLARE
  v_in_text    VARCHAR2 (500) := 'Ap'',''Fd'',''Ab';
BEGIN
  v_in_text :=  ','''||v_in_text||''',';
  dbms_output.put_line(v_in_text);
END;
于 2013-04-17T07:49:19.140 回答