【问题标题】:How to capture SQL fired from Business Object Deski如何捕获从 Business Object Deski 触发的 SQL
【发布时间】:2019-10-03 09:36:57
【问题描述】:
我是 Business Objects Deski 的新手。我参考了一些较旧的报告以了解它的实际工作原理。
有一个报告,其中创建了多个数据提供者,并且在报告正文中有一个表格,它使用了来自多个数据提供者的少数字段。我可以看到每个 DP 背后的确切 SQL,但是在单独运行它们时,我没有得到与 BO 级别的报告相同的数据。我也尝试加入他们,仍然无法获得完全匹配。
所以,我的问题是,我想捕获从报告级别触发的 EXACT SQL,这样当我直接在 DB 上运行它时,我会得到完全相同的数据。
提前致谢!
【问题讨论】:
标签:
oracle
plsql
sap
oracle-sqldeveloper
business-objects
【解决方案1】:
在 BO 中生成报告有两个过程。
第 1 步涉及创建 SQL 语句、发送到数据库和检索结果集。在 BO 术语中,检索到的数据集称为“微立方体”。您可以在“查看数据”面板中查看微立方体的内容。
在 Pass 2 中,来自一个或多个微立方体的数据被呈现为报告的可视化形式。这不是使用 SQL 完成的,而是使用 BO 自己的内部计算引擎——报告/文档级别的过滤器、公式、变量、聚合等,所有这些都在此过程中执行。
因此,您在数据提供程序中看到的 SQL(大部分)与实际发送到底层数据库的 SQL 相同(如果查询包含提示,则提示文本将替换为静态值)。
如果您直接在 Oracle 中从数据提供者运行 SQL,那么您得到的结果应该与 microcubes 匹配,但它与报告中显示的数据不匹配,因为未执行 Pass 2使用 SQL。