将Oracle DB与Power BI连接

时间:2018-07-01 08:46:18

标签: powerbi oracle12c powerbi-datasource powerbi-desktop

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

https://docs.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

然后添加数据库用户和密码 enter image description here

,我得到这个错误 enter image description here

我刚刚在笔记本电脑上安装了Oracle 12c 64位来测试连接 enter image description here

我也在使用Power Bi 64位 enter image description here 我也在Windows 10 64位上 enter image description here

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

enter image description here

使用“ OraDB12Home1”和“ OraClient12Home2”将数据库添加到DSN的位置 enter image description here

,对于两个DSN,我都测试了连接,连接成功 enter image description here

  • 下一步,我测试使用ODBC OraClient12Home2进行连接:

enter image description here

然后插入数据库的用户名和密码 enter image description here

然后我得到这个错误 enter image description here

,当我与OraDB12Home1连接时,出现此错误:  enter image description here

我还清除了电源bi上的所有数据源连接,因为有时它只显示错误,而没有将我发送到下一个屏幕以输入用户名和密码 enter image description here

这些是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中,这些数据是什么,我是否丢失了,应该怎么做才能使其成功连接?


  • 更新:在“服务器”字段上尝试使用testdb:

根据注释的建议,将 localhost / testdb 更改为仅 testdb (也在大写字母 TESTDB 中进行了测试),因为应该在服务器上键入。但这对我也不起作用,并且仍然出现相同的错误,请检查以下图片:

enter image description here

enter image description here

enter image description here

似乎与oracle的连接无法正常工作,我需要在oracle中做些什么才能使其正常工作?

4 个答案:

答案 0 :(得分:1)

通过从Microsoft Store卸载PowerBI并从https://powerbi.microsoft.com/en-us/desktop/上的高级下载选项下载msi文件,终于使PowerBI能够与Oracle驱动程序一起使用。我怀疑商店应用程序的某些安全限制阻止了使用Oracle库。

答案 1 :(得分:0)

它采用与SQL Plus相同的连接体系结构,因此在成功的SQL Plus测试中,Power BI中的Server字段应包含@符号之后的任何内容。

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

答案 2 :(得分:0)

我已经格式化了Windows,从头开始重新安装所有内容并通过ODBC进行了连接,并且可以正常工作(但是我得到了正常错误 DataSource.Error:ODBC:ERROR [07006] [Oracle] [ODBC]受限的数据类型属性冲突

但通过对每个所需表的选择查询,我都能正常工作

  • 下载了Oracle Database 12c Release 2

  • 正常安装

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

  • 在用户DSN中,点按以下图片:

enter image description here

enter image description here

enter image description here

enter image description here

由于连接成功,请单击“确定”进行保存

接着在Power BI上选择获取源:

  • 选择ODBC

enter image description here

  • 选择您在上方提供的DSN名称

enter image description here

  • 现在不要单击“确定”,因为它可能会给您一个错误,我将在下面进行解释。
  • 点击高级选项
  • 为特定表键入SELECT查询,然后单击“确定”。 enter image description here

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

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

如果您没有键入选择查询并单击“确定” 然后您添加了用户名和密码

enter image description here

  • 它将连接并显示表列表,但是您可能最终会遇到此错误(Internet上提供的解决方案是上述方法):

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

enter image description here

这就是我最终要如何连接的方式,但仍然有与该主题无关的小问题,我将其放在另一个问题上, 但希望这个答案可以帮助其他人建立联系

答案 3 :(得分:0)

我还体验到Connect via Oracle Database description by MS无法正常工作。但是,我可以通过以下格式输入凭据,而不使用ODBC通过“ Oracle数据库”选项(即Get Data > Oracle Database > Server)建立连接:

[HOSTNAME]:[PORT]/[SERVICE_NAME]

例如:

localhost:1521/myservice.com