使用 Power BI Desktop 连接到 Oracle 数据库
- 版本 :2023.1(当前版本)
使用 Power BI Desktop 连接到 Oracle 数据库
要使用 Power BI Desktop 连接到 Oracle 数据库,必须在运行 Power BI Desktop 的计算机上安装正确的 Oracle 客户端软件。 使用的 Oracle 客户端软件取决于已安装的 Power BI Desktop 版本:32 位或 64 位。 它还取决于 Oracle 服务器的版本。
支持的 Oracle 版本:
Oracle Server 9 及更高版本
Oracle Data Access Client (ODAC) 软件 11.2 或更高版本
必须在计算机上安装 Oracle Data Access Client (ODAC) 软件 11.2 或更高版本,才能使用 Power BI 连接到 Oracle 数据库。 若要安装 32 位 ODAC 软件,请访问 32 位 Oracle 数据访问组件 (12.1.0.2.4) 或选择你喜欢的版本。 若要安装 64 位 ODAC 软件,请访问 64 位 Oracle 数据访问组件 (12.1.0.2.4) 或选择你喜欢的版本。 必须选择 Windows Installer 版本,因为 x-copy 版本不适用于 Power BI Desktop。
来自 Oracle 自述文件:
“从 ODAC 18c 开始,不再支持计算机范围的配置。 如果管理员希望覆盖单个应用程序的 ODP.NET 设置,他们仍然可以将 ODP.NET 置于 GAC 中,并将配置节处理程序和 DbProviderFactory 信息手动添加到 machine.config。”
安装 Oracle 18.x/19.x 后,客户必须按照此处的说明进行操作:为 Power BI Desktop 注册 Oracle 驱动程序
如果要为 Power BI Desktop、本地数据网关或 Power BI 报表服务器配置 Oracle 数据库,请参阅 Oracle 连接类型一文中的信息。
确定安装了哪个版本的 Power BI Desktop
若要确定所安装的 Power BI Desktop 版本,请在“帮助”功能区上,选择“关于”,然后查看“版本”行 。 下图中安装的是 64 位版本的 Power BI Desktop:
安装 Oracle 客户端
对于 32 位版本的 Power BI Desktop,请下载并安装 32 位 Oracle 客户端。
对于 64 位版本的 Power BI Desktop,请下载并安装 64 位 Oracle 客户端。
备注
选择与 Oracle Server 兼容的 Oracle Data Access Client (ODAC) 版本。 例如,ODAC 12.x 并非始终支持 Oracle Server 版本 9。 选择 Oracle 客户端的 Windows 安装程序。 在 Oracle 客户端的安装过程中,请在安装向导中选择相应的复选框,确保启用“在计算机范围级别配置 ODP.NET 和/或 Oracle Providers for ASP.NET”。 某些版本的 Oracle 客户端向导默认选中此复选框,其他版本则不选中。 请确保选中此复选框,以便 Power BI 可以连接到 Oracle 数据库。
连接到 Oracle 数据库
安装了匹配的 Oracle 客户端驱动程序后,就可以连接到 Oracle 数据库。 要使用本地数据网关连接到 Oracle 数据库,必须在运行此网关的计算机上安装正确的 Oracle 客户端软件。 你使用的 Oracle 客户端软件取决于 Oracle 服务器版本,但始终与 64 位网关匹配。 有关详细信息,请参阅管理数据源 - Oracle。
用于 Power BI Desktop 的 64 位和 32 位驱动程序
Power BI Desktop 使用非托管的 ODP.NET 编写 Power BI 报表。 使用高于 Oracle ODAC 12.2 版本的驱动程序时,只需执行以下步骤。 对于 ODAC 12.2 和以前版本的驱动程序,当你安装 ODAC 时,可以选择在计算机范围内自动包含非管理的 ODP.NET 的配置。
下面两部分中的步骤假设你已将 ODAC 18.x 文件安装到 64 位版本 Power BI Desktop 的 c:\oracle64 文件夹或 32 位版本 Power BI Desktop 的 c:\oracle32 文件夹中。 请按照以下步骤注册非管理的 ODP.NET:
64 位 Power BI Desktop
在 Oracle 下载网站上,安装 Oracle 64 位 ODAC Oracle Universal Installer (OUI)。
向 GAC 注册 ODP.NET 非管理的客户端:
C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac /providerpath:C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
将 ODP.NET 非管理的客户端条目添加到 machine.config:
C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:config /force /product:odp /frameworkversion:v4.0.30319 /providerpath:C:\oracle64\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
32 位 Power BI Desktop
在 Oracle 下载网站上,安装 Oracle 32 位 ODAC Oracle Universal Installer (OUI)。
向 GAC 注册 ODP.NET 非管理的客户端:
C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:gac /providerpath:C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
将 ODP.NET 非管理的客户端条目添加到 machine.config:
C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\OraProvCfg.exe /action:config /force /product:odp /frameworkversion:v4.0.30319 /providerpath:C:\oracle32\product\18.0.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
支持的功能
导入
DirectQuery
高级选项
命令超时(分钟)
SQL 语句
包含关系列
在完整层次结构中导航
请执行以下步骤来建立连接:
在“主页”功能区上,选择“获取数据” 。
从显示的“获取数据”窗口中,选择“更多”(如有必要),再选择“数据库”>“Oracle 数据库”,然后选择“连接” 。
在出现的“Oracle 数据库”对话框中,提供服务器的名称,并选择“确定” 。 如果需要 SID,请使用以下格式进行指定:ServerName/SID,其中 SID 是数据库的唯一名称 。 如果 ServerName/SID 格式无效,则使用 ServerName/ServiceName,其中 ServiceName 是用于连接的别名 。 有关更多连接字符串属性,请参阅此处
备注
如果你使用的是本地数据库或自治数据库连接,则可能需要将服务器名称放在引号中,以避免连接错误。
选择“Import”或“DirectQuery”数据连接模式 。 剩余的示例步骤使用“导入”数据连接模式。 了解有关 DirectQuery 的详细信息,请参阅在 Power BI Desktop 中使用 DirectQuery。
要通过使用本机数据库查询导入数据,请将查询放在“SQL 语句”框中,可通过展开“Oracle 数据库”对话框的“高级选项”部分找到该框 。 Power BI Desktop 不支持执行存储过程的 Oracle 本机查询,且“begin…end”块中的 Oracle 本机查询不返回任何结果集。
在“Oracle 数据库”对话框中输入 Oracle 数据库信息(包括任何可选信息,如 SID 或本机数据库查询)后,请选择“确定”以进行连接 。
如果 Oracle 数据库需要数据库用户凭据,请在出现提示时,输入这些凭据。
故障排除
命名语法不正确或未正确配置时,可能会遇到来自 Oracle 的以下任一错误:
ORA-12154:TNS:无法解析指定的连接标识符。
ORA-12514:TNS:侦听器目前不知道连接描述符所需的服务。
ORA-12541:TNS:无侦听器。
ORA-12170:TNS:连接超时。
ORA-12504:TNS:侦听器未给定 SERVICE_NAME in CONNECT_DATA。
如果 Oracle 客户端未安装或未正确配置,则可能出现这些错误。 如果已安装,请验证是否已对 tnsnames.ora 文件进行了正确配置、你使用的是不是正确的 net_service_name。 还需确保使用 Power BI Desktop 的计算机和运行网关的计算机具有相同的 net_service_name。 有关详细信息,请参阅安装 Oracle 客户端。
可能还会遇到 Oracle 服务器版本与 Oracle Data Access Client 版本之间的兼容性问题。 通常,最好使二者的版本匹配,因为某些组合不兼容。 例如,ODAC 12.x 不支持 Oracle Server 版本 9。
如果已从 Microsoft Store 下载 Power BI Desktop,则 Oracle 驱动程序问题可能导致你无法连接到 Oracle 数据库。 如果遇到此问题,则返回的错误消息为:未设置对象引用。 这是 Windows UWP 应用中的 Oracle 驱动程序工作原理的问题。 若要解决此问题,必须执行以下操作:
从下载中心而不是 Microsoft Store 下载 Power BI Desktop。
如果在连接到 Oracle Database 时 Power BI Gateway 中出现“未设置对象引用”错误消息,请按照管理数据源 - Oracle 中的说明进行操作。
如果使用 Power BI 报表服务器,请参阅 Oracle 连接类型一文中的指导。
连接到 Oracle 数据库时,如果任何基础视图或查询使用具有特定于区域设置的行为的函数(例如 TO_DATE
或 TO_CHAR
),Oracle 客户端可能需要正确配置国家/地区语言支持。 在 Windows 上,可以在注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\
下配置 NLS_LANG
参数。 有关详细信息,请参阅 Oracle 文档。 如果使用 Power BI Gateway 连接到 Oracle,则需要在安装了网关和 Oracle 客户端的计算机上更新注册表中的 NLS_LANG
设置。