【问题标题】:Passing Multiple Values into an API/Getting Multiple Values将多个值传递到 API/获取多个值
【发布时间】:2018-05-14 17:03:39
【问题描述】:

这是我今天要解决的问题。我们有一个 ERP 系统,我需要设置一个事件,以便在采购订单授权人 (POA) 准备好待批准的采购订单时向他们发送电子邮件。对于我们只有一个授权人的采购订单,这很容易设置。但是,有些采购订单需要经过一组授权人,特别是我们的 QA 小组的审核,才能获得批准。

我可以使用以下方法获取我们 QA 组的授权人列表:

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

此查询返回 50 行数据。

我还可以使用以下方法获取与授权 ID 关联的 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 个值传递到第二个查询中,并获取所有 50 个用户的 USERID。如果这些 USERID,那么当他们准备好批准 PO 时,我可以向 QA 组发送通知电子邮件。

【问题讨论】:

    标签: sql oracle plsql erp


    【解决方案1】:

    也许你正在寻找这个。

    SELECT purchase_authorizer_api.get_userid('30', authorize_id)
           FROM purch_authorize_group_line
           WHERE authorize_group_id = '30-QA-NUC';
    

    【讨论】:

      【解决方案2】:

      这应该会有所帮助 -

      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;
      /
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        相关资源
        最近更新 更多