我正在尝试让SAP Business Objects从存储过程中获取报告。我没有运气,所以我现在只是尝试用一个例子/教程如何做到这一点,我发现在网上,我不能得到的工作。
我在跟踪:https://irfansworld.wordpress.com/2012/11/17/what-you-should-know-about-stored-procedure-universe-in-bi-4-0/
我以完全相同的方式创建了所示的对象,如下所示:
create or replace package emp_package
as type emp_row_type is ref cursor return emp%rowtype;
end emp_package;
/
create or replace
procedure getEmployeesByDepartment
(
return_rows_cursor in out emp_package.emp_row_type,
dept_parameter in emp.deptno%type
)
as begin
open return_rows_cursor for
SELECT *
FROM emp
WHERE emp.deptno = dept_parameter;
end;
/
我得到了很好的结果:包EMP_PACKAGE已编译
程序GETEMPLOYEESBYDEPARTMENT汇编
但在这里我看到了一个明显的区别。对我来说,它只接受应该是out/return参数的东西,并提示我,就好像它们是输入参数一样。
就算我同意了它不能将“out”光标中的字段识别为要在报表上显示的字段。
我甚至试着改变光标参数从“在出”只是“出”…但还是没找到
有什么想法,为什么我不能让这个例子为我工作?
使用SAP通用设计工具4.1。
Oracle 11g
1条答案
按热度按时间qlvxas9a1#
这不是一个真正的答案,但太长的评论。
我刚刚在BI4.1 SP Patch 5中尝试了这个方法,SP编辑器按预期显示(只显示DEPT_PARAMETER参数)。
对于你看到的不同行为我能想到两种可能性:
一个是数据库中间件客户端发生了一些事情,使BO对参数感到困惑。我使用的是Oracle 11g客户端,以及BO中的Oracle Native连接(即,不是ODBC或JDBC)。如果您使用的是ODBC或JDBC连接,请尝试使用本机客户端。
这可能是您正在使用的特定UDT版本的错误。我建议升级,或联系SAP支持,看看这是否是一个已知的问题。