Peoplesoft передает массив строк в качестве параметра

Я хотел бы спросить, как передать массив строк в качестве параметра в Peoplesoft.

В запросе Oracle я могу сделать это следующим образом

SELECT EMP_ID, EMP_NAME
from   EMPLOYEE
where  EMP_ID in (select regexp_substr(:empid,'[^,]+', 1, level) from dual connect by regexp_substr(:empid, '[^,]+', 1, level) is not null)

И передайте значение параметра как

E001,E002,E003,...

Но в диспетчере запросов Peoplesoft, когда я создаю критерии in для подзапроса, он не допускает в нем предложение from.

Другая альтернатива, которую я пытаюсь использовать, — использовать Prompt, а затем передать ему значение, поэтому запрос становится таким:

SELECT EMP_ID, EMP_NAME
from   EMPLOYEE
where  EMP_ID in (:1)

Но это тоже не работает.

Итак, как мне это сделать?


person rcs    schedule 11.04.2019    source источник


Ответы (1)


Я не могу сказать, спрашиваете ли вы об этом в диспетчере запросов ps или в PeopleCode. Возможно, используйте более старые методы, например, сначала заполните таблицу и присоединитесь к этой таблице. Возможно, используйте предложение «С». Пожалуйста, поделитесь тем, что вы в итоге использовали, чтобы достичь своей цели.

person Alexei Tetenov    schedule 11.04.2019
comment
Пытаюсь сделать с PS Query Manager. Кажется, это невозможно сделать. Я пытался использовать приглашение, чтобы оно выглядело как where EMP_ID IN (:1), но оно не работает. Моя альтернатива сейчас заключается в том, что я создаю 2 набора запросов. Один выбирает без передачи параметра (который возвращает весь набор), а другой — фильтрует по определенной строке (одна запись на вызов). Я не могу сначала заполнить таблицу, так как у меня нет на это достаточных прав. - person rcs; 12.04.2019