点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
在办公室,我们有针对Oracle 11gR2的Crystal Reports 2016。
事实证明,我创建了一个存储在" Package.Stored Procedure"中的查询,该查询利用了"虚拟视图"(例如:以" view1"作为SELECT ...)。 查询中大约有5或6个虚拟视图。 返回的行数不高。 通常在100到200之间。存储过程的光标为IN OUT参数。
存储过程在数据库中运行良好,并且返回数据不需要花费太长时间(最多1分钟或2分钟)。
我的问题是当我使用存储过程使用报表时。 该报告仅在第一次(我创建报告时)运行良好。 然后,当我尝试第二次执行它时,它会花费很多时间,实际上我还没有看到它返回任何数据。
我什至已经在报表中复制了查询(根本没有使用存储过程),并且得到的结果与使用存储过程时的结果相同。
我正在使用Crystal Reports中包含的Oracle本机驱动程序,因为当我尝试使用ODBC驱动程序时会引发I.O异常。
您能告诉我什么地方可能出问题吗? 谢谢
我认为导致问题的原因是虚拟视图。 我知道Crystal Reports应用程序不喜欢存储过程中的Temp表,我猜想与Virtual Views相同。
要查找正在发生的情况,我建议使用CRLogger:
https://apps.support.sap.com/sap/support/knowledge/public/zh/1603398
CrLOgger捕获数据源和Crystal Reports之间的通信。 您可以收集第一次运行的日志,然后与第二次运行进行比较。 它应该告诉您对存储过程的CR调用是否有任何区别。
感谢帮助Vitaly
很好,您使用的是本机Oracle连接-与ODBC与Oracle相比,它的响应速度和稳定性要高得多。
存储过程中使用的是"虚拟视图"还是在您的报告中将它们链接在一起?
您是将存储过程链接到报表中的其他内容,还是只使用一个存储过程?
存储的proc更新数据吗?
-戴尔
嗨,戴尔,
感谢帮助。
虚拟视图在存储过程中使用,而不在报表中使用,并且存储过程未与其他任何链接。 我仅将其用作报告的数据源,并且由于当前仅对其进行测试,因此我仅在报告中添加了几个字段,然后执行它。 我只有3个参数。 其中2个是IN参数,它们是数字类型。 另一个参数是ref Cursor,它用于返回查询。
每次我进行测试时,当我在数据库中执行存储过程时,存储过程都可以正常运行。 在配置报告时,我设置了测试参数,并且在第一次刷新时运行良好,我看到了报告中的列。 即使我在报表中复制查询,它也只能在第一次运行时正常运行。
存储过程不会更新任何表,它仅在执行SELECT命令。
我已按照CR指南中的说明执行了所有步骤来使用Oracle存储过程(例如,处理日期时必须使用的日期格式)。
我想知道可能是什么原因。
一周热门 更多>