首页 > 解决方案 > 从 Power BI Desktop 中的 Oracle 数据库获取数据永久保存

问题描述

我正在尝试从 Power BI Desktop 中的单个 Oracle 数据库表中获取数据。该表有大约 200 万行数据。

以下查询工作得很好:

let
    Source = Oracle.Database("PPM_PROD", [HierarchicalNavigation=true]),
    PPM_DEV = Source{[Schema="PPM_DEV"]}[Data],
    Timesheets = PPM_DEV{[Name="BI_TIMESHEET"]}[Data]
in
    Timesheets

但是,如果我添加如下 SQL 语句,我会遇到问题:

let
    Source = Oracle.Database("PPM_PROD", [HierarchicalNavigation=true, Query="SELECT * FROM PPM_DEV.BI_TIMESHEET#(lf)WHERE (ACTUAL_TIME > 0) OR (OVERTIME > 0) "]),
    PPM_DEV = Source{[Schema="PPM_DEV"]}[Data],
    Timesheets = PPM_DEV{[Name="BI_TIMESHEET"]}[Data]
in
    Timesheets 

此查询不会获取任何数据,并且数据加载/刷新将永远停留在“评估”阶段。任何建议将不胜感激。

标签: oraclepowerbipowerquerypowerbi-desktopm

解决方案


在这种情况下,我建议不要使用 SQL 语句,而是在 Power Query 编辑器中对其进行过滤。在最常见的筛选方案中,Power Query 会将应用的筛选步骤转换为类似于 SQL 语句的本机查询。

如果您愿意,您仍然可以使用 SQL 语句,但步骤

    PPM_DEV = Source{[Schema="PPM_DEV"]}[Data],
    Timesheets = PPM_DEV{[Name="BI_TIMESHEET"]}[Data]

如果您已经选择并过滤了Timesheets表格,则没有意义。这些步骤用于导航到您打算查询的架构和表,但您已经在 SQL 中处理了这些。


推荐阅读