Crystal Reports显示Oracle视图中某些字段的空白值(空值)
问题描述:
摘要
我们有一个Crystal报表引用单个Oracle视图。报告中没有其他表或连接。该视图由多个选择,连接和其他数据转换(例如,sum,case,to_date,group by)组成。Crystal Reports显示Oracle视图中某些字段的空白值(空值)
视图中的四列在报告中显示为空(空)。这些相同的列在Oracle SQL Developer中正确显示,并通过在C#应用程序中使用Oracle Data Provider for .NET进行选择。所有其他列在报告中正确显示。
此外,“浏览字段”选项不会显示受影响字段的值,但会显示相同类型的未受影响字段的选项。同样,如果我使受影响的字段成为报告的参数,则不会显示选项。
我们验证了在所有情况下,我们在Crystal Reports,Oracle SQL Developer和我们的Web应用程序中都以相同的只读用户身份进行连接。
分辨率失败尝试
- 我们移除和更换的水晶报表视图和领域。
- 我们创建了一个全新的报告,连接到相同的视图。
- 我们创建了一个新的视图(来自同一SQL)在同一份报告中使用
- 我们通过Crystal Reports中验证数据库
-
我们转换隐日期转换从
score_month = '01-SEP-2017'
到
score_month = TO_DATE('01-SEP-2017', 'dd-MON-yyyy')`
其他怪异
- 从视图中的表导出作品中的数据,但我们想用一个视图
我们正处在一个无所适从这个问题的原因是。有任何想法吗?
答
解决此问题需要对视图进行一些编辑。
-
我们根据https://stackoverflow.com/a/37729175/19977删除了Oracle特定的sql。例如:
-- replace TRUNC(sysdate, 'MONTH') AS score_month` -- with TO_DATE('01-SEP-2017', 'dd-MON-yyyy') -- and replace where score_month = '01-SEP-2017' -- with where score_month = TO_DATE('01-SEP-2017', 'dd-MON-yyyy')
-
完全限定在与模式和表名的Oracle视图中使用的所有表和视图。例如:
-- replace FROM table t -- with FROM our_schema.table t
目前还不清楚为什么如通过Oracle数据提供.NET从Oracle SQL Developer中,并在应用预期,但没有从Crystal Reports认为是可行的。进一步了解这个问题是值得欢迎的。