SSRS在Oracle中执行存储过程

时间:2010-10-26 16:10:10

标签: oracle stored-procedures reporting-services

我在SSRS VS2008中有一个需要从Oracle运行Stord过程的报告。在过去,我运行Oracle的函数,返回表以显示数据。以及直接的SELECT语句

例如:

select * from table(MyFunction(:parm1, :parm2))
select * from MyTable

我没有在SSRS中运行Oracle的存储过程,我想知道......

如何在DataSet中定义Query以返回结果?

1 个答案:

答案 0 :(得分:2)

使用SYS_REFCURSOR类型的输出参数创建存储过程,并将查询结果放在过程中的输出游标中 - 如下所示:

CREATE OR REPLACE PROCEDURE pr_myproc(L_CURSOR out SYS_REFCURSOR) 
is
   BEGIN
     OPEN L_CURSOR FOR
       SELECT * FROM mytable;
   END;

然后在报表中创建数据集 - 在“查询”选项卡上,将“命令类型”设置为“StoredProcedure”,将“查询”字符串设置为过程的名称,例如。 pr_myproc。如果选中“字段”选项卡,则这些应与光标的预期结构匹配,即。查询输出。