Передача нескольких значений в API / Получение нескольких значений - PullRequest
0 голосов
/ 14 мая 2018

Вот проблема, над которой я работаю сегодня. У нас есть система ERP, и мне нужно настроить событие для отправки по электронной почте авторизаторам заказов на покупку (POA) всякий раз, когда у них есть заказ на покупку, готовый к утверждению. Это довольно легко настроить для заказов на покупку, где у нас есть один авторизатор. Однако некоторые заказы на покупку должны быть проверены группой авторизаторов, в частности нашей группой контроля качества, прежде чем они могут быть утверждены.

Я могу получить список авторизаторов для нашей группы контроля качества, используя следующее:

select authorize_id from purch_authorize_group_line where authorize_group_id = '30-QA-NUC';

Этот запрос возвращает 50 строк данных.

Я также могу получить USERID, связанный с идентификатором авторизации, используя следующее:

SELECT purchase_authorizer_api.get_userid('30','104351') FROM DUAL;

Что я не могу понять, так это как передать все значения из первого запроса во второй. Этот запрос:

SELECT purchase_authorizer_api.get_userid('30',(select authorize_id from purch_authorize_group_line where authorize_group_id = '30-QA-NUC')) FROM DUAL;

возвращает ошибку «ORA-01427: однострочный подзапрос возвращает более одной строки.»

Итак, мне интересно, есть ли способ передать все 50 значений из первого запроса во второй запрос и получить USERID для всех 50 пользователей. Если эти USERID, то я могу отправить уведомление по электронной почте группе QA, когда у них есть PO, готовый к утверждению.

Ответы [ 2 ]

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

Это должно помочь -

DECLARE
    V_VARIABLE VARCHAR2(1024);
BEGIN

FOR REC IN (SELECT AUTHORIZE_ID AS VAL FROM PURCH_AUTHORIZE_GROUP_LINE WHERE AUTHORIZE_GROUP_ID = '30-QA-NUC')
LOOP

SELECT PURCHASE_AUTHORIZER_API.GET_USERID('30',R.VAL) INTO V_VARIABLE FROM DUAL;

..
..
../* You code processing logic */


END LOOP;

END;
/
0 голосов
/ 14 мая 2018

Может быть, вы ищете это.

SELECT purchase_authorizer_api.get_userid('30', authorize_id)
       FROM purch_authorize_group_line
       WHERE authorize_group_id = '30-QA-NUC';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...