我在SSRS VS2008中有一个需要从Oracle运行Stord过程的报告。在过去,我运行Oracle的函数,返回表以显示数据。以及直接的SELECT语句
例如:
select * from table(MyFunction(:parm1, :parm2))
select * from MyTable
我没有在SSRS中运行Oracle的存储过程,我想知道......
如何在DataSet中定义Query以返回结果?
答案 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。如果选中“字段”选项卡,则这些应与光标的预期结构匹配,即。查询输出。