【问题标题】:How to call a Stored Procedure from a BI Publisher Report?如何从 BI Publisher 报表中调用存储过程?
【发布时间】:2019-09-30 01:09:02
【问题描述】:

我有一个存储过程,我想从 BI 报告中调用它。我的目的只是执行该程序。我不想在报告中显示任何输出。只是执行。

【问题讨论】:

  • 什么版本的 BI 发布者? EBS?独立?你想要它只调用一次吗?具体记录?
  • 版本为:11.1.1.7.160719。它是独立的。我想在需要时调用它。并且只希望报表在运行报表时执行此过程。

标签: sql plsql bi-publisher


【解决方案1】:

您不能从 select 语句中调用过程。但是您可以在 select 语句中使用函数,并且可以从函数中调用过程。

尝试创建一个调用该过程的函数。然后在您的 BI Publisher 选择语句之一中使用该函数。

这可以提供一些额外的指导: oracle call stored procedure inside select

您需要在函数中提供一些输出。你可以让它成为“成功”或简单的硬编码,但请确保将异常从过程传递给函数,然后从该异常返回到 select 语句。

【讨论】:

    【解决方案2】:

    在您的数据定义中,您可以在报表触发对象之前或之后调用过程。

    例如,这会在 xml 数据定义的后报告触发器中调用名为 xref_burst_pkg.AfterReport() 的程序。

    <dataTrigger name="afterReport" source="xref_burst_pkg.AfterReport()"/> 
    

    例如,在 6i Oracle 报表中,您可以在后报表触发器中添加类似这样的内容来调用突发程序:

    function AfterReport return boolean is
     req_id     number;
    begin
    
    req_id := FND_REQUEST.SUBMIT_REQUEST ('XDO',
    'XDOBURSTREP',
    '',
    '',
    FALSE,
    'Y',
    fnd_global.conc_request_id,
    'Y',
    chr(0),'', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '');
                                                                                    
    if req_id = 0 then
        srw.message(100,'Failed to submit bursting program');
    end if;
    
    SRW.USER_EXIT('FND SRWEXIT');
    return (TRUE);
    end;
    

    【讨论】:

      【解决方案3】:

      经过一番研发,我找到了解决方案,只需在你的BI报告中创建一个组并将代码添加为

      DECLARE
      type refcursor is REF CURSOR;
      xdo_cursor refcursor;
      BEGIN
      OPEN :xdo_cursor FOR
      select 1 from dual;
      <<Procedure name>>;
      END;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        相关资源
        最近更新 更多