连接Oracle数据库与Power BI时出现错误

3

我正在尝试使用Power BI连接Oracle 12c数据源,我寻找了多种解决方案并按照Microsoft文档的说明进行操作。

https://learn.microsoft.com/en-us/power-bi/desktop-connect-oracle-database#installing-the-oracle-client

但我认为工作中缺少了一些东西。

  • 首先尝试通过Oracle数据库连接:

我正在同一台笔记本电脑上安装全新的Oracle和PowerBI,服务器应该采用文档中描述的"ServerName/SID"格式,因此我的格式将是:

localhost/testdb

enter image description here

然后添加数据库用户名和密码 在此输入图片描述

但是我遇到了这个错误 在此输入图片描述

我刚刚在我的笔记本上安装了Oracle 12c 64位版本来测试连接 在此输入图片描述

同时我使用的是Power Bi 64位版本 在此输入图片描述 并且我使用的是Windows 10 64位版本 在此输入图片描述

我还从Oracle网站安装了“64位Oracle数据访问组件(ODAC)”: http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

enter image description here

我已经使用“OraDB12Home1”和“OraClient12Home2”将我的数据库添加到DSN中

在此输入图片描述

同时,我已经为这两个DSN测试了连接,测试成功

在此输入图片描述
  • 接下来,我尝试使用ODBC OraClient12Home2进行连接测试:

enter image description here

然后为数据库插入用户名和密码 在此输入图片描述

然后我收到了这个错误 在此输入图片描述

当我使用OraDB12Home1连接时,我收到了这个错误: 在此输入图片描述

我还清除了power bi上的所有数据源连接,因为有时它只会显示错误而不将我发送到下一个屏幕以输入用户和密码 在此输入图片描述

这是tnsnames.ora的详细信息

  # tnsnames.ora Network Configuration File: 
  C:\app\Ahmadssb\virtual\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
  # Generated by Oracle configuration tools. 

  LISTENER_TESTDB =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


TESTDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testdb)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.babader.com)
    )
  )

我不知道我错过了什么,我甚至已经将数据从Oracle导出为转储文件并将其转换为SQL,但似乎现在在PowerBI上不支持这种情况。 我需要将我的数据库数据导入PowerBi,我错过了什么数据?我应该怎么做才能成功连接?
  • 更新:在服务器字段上尝试testdb:

根据评论建议,将localhost/testdb更改为仅testdb(也测试过大写的TESTDB),因为它应该在服务器上键入。但是这对我也没有起作用,仍然会出现相同的错误,请查看以下图片:

enter image description here

enter image description here

enter image description here

看起来与Oracle的连接不起作用,我需要在Oracle中做些什么才能使其正常工作吗?


@Nick.McDermaid 无法得到错误信息,"服务器名称不能超过128个字符"。 - Ahmad Saleh
确定您已安装了64位的Oracle客户端吗? - Nick.McDermaid
是的,我已经从我在帖子中提供的链接下载了文件,并且有一张图片显示了odbc(64位),是否还有其他方法可以检查我所拥有的客户端版本? - Ahmad Saleh
这个链接http://community.powerbi.com/t5/Desktop/Connect-To-Oracle-Database/m-p/188351#M82840基本上是说只需使用`TESTDB`作为服务器,因为这是您的tnsnames文件中的服务器描述。 - Nick.McDermaid
不是帮忙,但我能理解你的痛苦。感谢你记录了所有尝试使用Power BI Desktop与Oracle的繁琐过程。 - Damien B
显示剩余5条评论
4个回答

3

我重新格式化了Windows系统,从头开始重新安装了一切,并通过ODBC连接。虽然它能工作(但我收到了正常的错误信息DataSource.Error: ODBC: ERROR [07006] [Oracle][ODBC]Restricted data type attribute violation

但是为每个表编写选择查询语句,这样就可以使它工作。

  • 下载Oracle Database 12c Release 2

  • 正常安装

  • 从开始菜单 -> Windows管理工具 > ODBC数据源(64位)

  • 在用户DSN选项卡中,根据下面的图片操作:

输入图像描述

输入图像描述

输入图像描述

输入图像描述

由于连接成功,则点击“确定”以保存它

接下来,在Power BI中选择获取数据源:

  • 选择ODBC

输入图像描述

  • 选择上面提供的DSN名称

输入图像描述

  • 现在不要点击“OK”,因为可能会出现错误,我会在下面解释。
  • 点击高级选项
  • 键入指定表的SELECT查询并单击“确定” enter image description here

  • 然后它将显示表数据预览,请单击“加载” enter image description here

  • 恭喜你,完成了 enter image description here

如果您没有键入SELECT查询并单击“确定” 那么您会添加用户名和密码

enter image description here

  • 它将连接并显示表格列表,但您可能会遇到此错误(因特网上提供的解决方案是上面这个):

https://community.powerbi.com/t5/Integrations-with-Files-and/ODBC-Connection-error-07006/td-p/278165

enter image description here

这就是我最终连接它的方式,但我仍然有一个与此主题无关的小问题,我将其放在另一个问题中, 但希望本答案能帮助他人连接。


1
我最终能够通过从https://powerbi.microsoft.com/en-us/desktop/的高级下载选项中下载msi文件,卸载Microsoft Store中的PowerBI,并使其与Oracle驱动程序配合使用。 我怀疑这是一些安全限制,防止使用Oracle库。

1
我也有这样的经历,通过 MS 描述连接 Oracle 数据库 的方法不起作用。但是,我可以通过“Oracle Database”选项(即获取数据 > Oracle 数据库 > 服务器)建立连接,而无需使用 ODBC,在以下格式中输入凭据:

[主机名]:[端口号]/[服务名称]

例如:

localhost:1521/myservice.com

0

它遵循与SQL Plus相同的连接架构,因此在Power BI中的服务器字段应包含您成功的SQL Plus测试中@符号之后的任何内容。

因此,当从Power BI建立Oracle连接时,在服务器字段中尝试TESTDB,而不是localhost/testdb。如果这样可以工作,我认为您可以忽略ODBC。


它没有正常工作,请检查我在帖子上的更新,仍然出现相同的错误! - Ahmad Saleh
似乎连接到 Oracle 的问题没有被解决,我需要在 Oracle 中做些什么来让它工作? - Ahmad Saleh
我会专注于使用64位的sqlplus.exe和tnsping.exe测试连接。从64位安装树下的BIN文件夹启动它们。当这些工具可以正常工作时,使用相同的设置来连接Power BI。 - Mike Honey
不要太过苛责自己,oracle客户端的安装和配置非常困难。 - Mike Honey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接