2017-09-15 118 views
1

摘要

我们有一个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应用程序中都以相同的只读用户身份进行连接。

分辨率失败尝试

  1. 我们移除和更换的水晶报表视图和领域。
  2. 我们创建了一个全新的报告,连接到相同的视图。
  3. 我们创建了一个新的视图(来自同一SQL)在同一份报告中使用
  4. 我们通过Crystal Reports中验证数据库
  5. 我们转换隐日期转换从

    score_month = '01-SEP-2017' 
    

    score_month = TO_DATE('01-SEP-2017', 'dd-MON-yyyy')` 
    

    https://stackoverflow.com/a/37729175/19977

其他怪异

  1. 从视图中的表导出作品中的数据,但我们想用一个视图

我们正处在一个无所适从这个问题的原因是。有任何想法吗?

回答

0

解决此问题需要对视图进行一些编辑。

  1. 我们根据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') 
    
  2. 完全限定在与模式和表名的Oracle视图中使用的所有表和视图。例如:

    -- replace 
    FROM table t 
    -- with 
    FROM our_schema.table t 
    

目前还不清楚为什么如通过Oracle数据提供.NET从Oracle SQL Developer中,并在应用预期,但没有从Crystal Reports认为是可行的。进一步了解这个问题是值得欢迎的。