элемент списка выбора вершины должен возвращать значения по умолчанию - PullRequest
0 голосов
/ 04 мая 2018

У меня есть элемент списка выбора, в котором LOV имеет значение select name, name from dual, но мне нужно отобразить некоторое значение по умолчанию для этого элемента, код PL / SQL по умолчанию -

DECLARE
   l_workspace   VARCHAR2 (4000);
   l_email       VARCHAR2 (4000);
BEGIN
   SELECT WORKSPACES
     INTO l_workspace
     FROM ALLUSER_WORKSPACES_FACT
    WHERE LOWER (email) = LOWER ( :app_user);

   FOR i
      IN (SELECT COLUMN_VALUE col1
            FROM TABLE (f_str2tbl (LOWER (l_Workspace), ',')))
   LOOP
      l_email := i.col1;
      RETURN l_email;
   END LOOP;
END;

o / p похоже на:

a
b
c

Значение списка выбора отображает только 1-е значение, поскольку остальные данные не отображаются.

Что не так с кодом PL / SQL? Мне нужно получить все выходные данные в списке выбора как

a
b
c

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Заявление

return l_email;

всегда завершает функцию, поэтому она прерывает цикл.

Для этого LOV вы должны использовать тело функции PL / SQL, возвращающее SQL-запрос с кодом, подобным

DECLARE
   l_workspace   VARCHAR2 (4000);
   l_email       VARCHAR2 (4000);
BEGIN
  SELECT WORKSPACES
     INTO l_workspace
     FROM ALLUSER_WORKSPACES_FACT
    WHERE LOWER (email) = LOWER ( :app_user);

   return 'SELECT COLUMN_VALUE col1
            FROM TABLE (f_str2tbl (LOWER (l_Workspace), '',''))';
END;
0 голосов
/ 04 мая 2018

Если ваш список выбора определен с параметром «Разрешить множественный выбор» = «Да», то выбранные значения сохраняются в виде списка, разделенного двоеточиями, например, «А: В: С». Так что вам нужно сделать то же самое по умолчанию. Функция apex_string.join может помочь - на самом деле их пример:

apex_string.join(apex_t_varchar2('a','b','c'),':')
-> a:b:c
...