You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Oracle存储过程作为Oracle OBIEE物理表的数据源?

Oracle BI Administration Tool 中“Stored Proc”物理表的正确用法

核心要求

Oracle BI 不支持通过DBMS_SQL.RETURN_RESULT隐式返回结果集的存储过程,必须使用显式OUT参数返回SYS_REFCURSOR的格式,这是OBIEE识别存储过程结果集的标准方式。

正确的存储过程编写

替换你现有的存储过程为以下格式:

CREATE OR REPLACE PROCEDURE BISAMPLE.RESULT_P (p_out_cursor OUT SYS_REFCURSOR)
AUTHID DEFINER AS
BEGIN
  OPEN p_out_cursor FOR
    SELECT NAME
         , INCOME_LVL
      FROM BISAMPLE.SAMP_CUSTOMERS_D;
END;
/

RPD 配置步骤

  1. 创建物理表,将源类型设置为Stored Proc
  2. 在“调用文本”输入框中,填写符合JDBC调用格式的语句:
    {call BISAMPLE.RESULT_P(?)}
    
    这里的?是占位符,对应存储过程的OUT游标参数
  3. 确保物理表的列(名称、数据类型)与存储过程游标返回的列完全匹配(例如你的物理表列Name对应游标中的NAME,Income对应INCOME_LVL)
  4. 给连接池使用的数据库用户授予存储过程的执行权限:
    GRANT EXECUTE ON BISAMPLE.RESULT_P TO [你的OBIEE连接用户];
    

失败原因说明

DBMS_SQL.RETURN_RESULT是Oracle 12c+引入的隐式返回结果集特性,但OBIEE的Stored Proc数据源并未适配这种方式,仅支持通过显式OUT游标参数返回结果集的存储过程。

内容的提问来源于stack exchange,提问作者janek_kos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:29:58