PowerBI Desktop needs the Oracle data providers installed at the machine level. After ODAC 12.2, Oracle removed this option from the install, which means out of the box Oracle 18.x and 19.x ODAC installs are not seen by Power BI Desktop. I've spent the last 24 hours installing and uninstalling various versions of ODAC trying to get them to work with Power BI Desktop.
I'm limiting this to the 64bit install (Because that is what I have) and .NET 4.0, becuase that is what Power BI Desktop needs.
I can now report I have ODAC 19.3 working with Power BI Desktop (May 2021). This is thanks to Google and a lot of digging around. I've put a link to the original article I found that helped me get the data providers installed, as this was not my own work! (Power BI Github comment ), I'm just documenting it here for others.
Check your Windows environment variables. Is the Oracle client you are trying to use the first oracle path in the PATH variable? Do you have TNS_ADMIN defined and pointing to a valid tnsnames.ora directory?
After all the hours spent trying to solve this issue it was my companies rolled out version of PBI Desktop. It was right in the article I had read 100 times but skimmed over because I have PBI desktop pushed to my machine. I had to have IT remote in to install.
If you downloaded Power BI Desktop from the Microsoft Store, you might be unable to connect to Oracle databases because of an Oracle driver issue. If you encounter this issue, the error message returned is: Object reference not set. This is an issue with how Oracle driver works in Windows UWP Apps. To address the issue, you have to do the following:
To use data from an Oracle database in your report, you must have a dataset that's based on a report data source of type Oracle. This built-in data source type uses the Oracle Data Provider directly and requires an Oracle client software component. This article explains how to download and install drivers for Reporting Services, Power BI Report Server, Report Builder, and Power BI Desktop.
The following commands that use Oracle's OraProvCfg.exe tool to register Oracle's Managed and Unmanaged
ODP.NET drivers are provided as examples for use with the above Microsoft products. For the configuration of the
ODP.NET drivers specific to your environment, you may need to contact Oracle support or reference Oracle's documentation for Configuring Oracle Data Provider for .NET.
On the Oracle download site, install the Oracle 64-bit ODAC Oracle Universal Installer (OUI). You only need the following steps when using Oracle ODAC drivers 12.2 and later. Otherwise, they install by default to a non-machine-wide configuration for a new Oracle home installation. These steps assume you've installed the ODAC 18.x files to the c:\oracle64 folder.
Microsoft Report Builder uses Managed
ODP.NET for authoring paginated (RDL) reports. You only need the following steps when using Oracle ODAC drivers 12.2 and later. Otherwise, they install by default to a non-machine-wide configuration for a new Oracle home installation. These steps assume you've installed the ODAC 18.x files to the c:\oracle32 folder where Microsoft Report Builder is installed. Follow these steps to register Managed
ODP.NET:
Power BI Report Builder uses Managed
ODP.NET for authoring paginated (RDL) reports. You only need the following steps when using Oracle ODAC drivers 12.2 and later. Otherwise, they install by default to a non-machine-wide configuration for a new Oracle home installation. These steps assume you've installed the ODAC 18.x files to the c:\oracle64 folder where Power BI Report Builder is installed. Follow these steps to register Managed
ODP.NET:
Power BI Desktop uses Unmanaged
ODP.NET for authoring Power BI reports. You only need the following steps when using Oracle ODAC drivers 12.2 and later. Otherwise, they install by default to a non-machine-wide configuration for a new Oracle home installation. These steps assume you've installed the ODAC 18.x files to the c:\oracle64 folder for 64-bit Power BI Desktop or the c:\oracle32 folder for 32-bit Power BI Desktop. Follow these steps to register Unmanaged
ODP.NET:
Contact your database administrator for connection information and for the credentials to use to connect to the data source. The following connection string example specifies an Oracle database on the server named "Oracle18" using Unicode. The server name must match what is defined in the Tnsnames.ora configuration file as the Oracle server instance name.
To create a dataset, you can either select a stored procedure from a drop-down list or create an SQL query. To build a query, you must use the text-based query designer. For more information, see Text-based Query Designer User Interface (Report Builder).
If the query includes query variables, corresponding report parameters are automatically generated. Named parameters are supported by this extension. For Oracle version 9 or later, multivalue parameters are supported.
Report parameters are created with default property values that you might need to modify. For example, each report parameter is data type Text. After the report parameters are created, you might have to change default values. For more information, see Report Parameters (Report Builder and Report Designer).
Before you can connect an Oracle data source, the system administrator must have installed the version of the .NET Data Provider for Oracle that supports retrieving data from the Oracle database. This data provider must be installed on the same computer as Report Builder and also on the report server.
If you use an ODAC version newer than version 12, you will need to follow the procedures below. The reason is because newer versions of ODAC do not automatically register their own provider in the Global Assembly Cache (GAC). If you do not follow these procedures, even some of the most basic Meridian functionality will not work.
We recommend you download the XCopy ODAC packages, because you will also need the
ODP.NET components. The
ODP.NET (Oracle.DataAccess) installation should be compatible with the client. For instance, the latest 64-bit Unmanaged
ODP.NET 19.10, download includes the Oracle Instant Client. See the readme documentation included with the download. More than one Oracle client can be installed and configured to use by different executables on the same machine.
The odac argument is the Oracle Home Name that is used for the registry keys, and the true argument communicates the dependency with the Oracle Instant Client. A properly formatted example appears below:
First we will try to complete installation for oracle12c. I could see one of your screenshot you got INS 50013 error to solve this we have to install oracle developer tools for visual studio. When we install this we would get .net packages it would help for our RPA. Once you install oracle developer tools for vs you would not get that popup. Please refer the below stack overflow link for installation url.
We no need to install visual studio in your machine/server. you have to install the oracle developer tools for visual studio. it is a toolset which help visual studio to connect with the Oracle database. But we need this tool set since our RPA platform would need some of the packages. my suggestion install the Oracle developer tools for visual studio with the below link and uninstall your ODAC 12c and install without that error you are facing earlier. it might resolve your issue.
Haha. installing software such a headache. infrastructure team need to take care of all this. are you trying in your machine or office. i think it will occupy so much as you told we will go with that data storage alone.
this is so weird in the other office machine getting same error but once oracle client installed all working fine, but when my PIC told me to migrating the RPA flows into another office machine this issue happen again but not resolved even thought oracle client installed. sh*t
Recently i had to work on a simple windows forms application that had to do accomplish basic CRUD functions. I thought i might be able to wire up something real quick using visual studio developer tools for oracle and ODAC. I also wanted to use the new managed ODP.net provider instead of the unmanaged provider as it would ease the deployment process. This was a very simple project and i didnt want the overhead of installing the oracle client on the client machines. That would have been an overkill. So i downloaded the latest ODAC from here . I was currently using both Visual Studio 2010 and 2012 and so while doing the installation you need to choose the correct visual studio version.
If you already have an Oracle client installed, ( i had Oracle 11.2) then the ODAC installation automatically copies the tnsnames.ora and sqlnet.ora to the new locations under 12.1 folder. After installation, i also restarted my machine, though the installation doc didnt mandate it. (i was due for an windows update reboot anyways) .
Upon doing so, I realized that it was not populating the tnsnames entry on the Data Source Name drop down box, if I chose the Managed Provider. However if changed the option to Unmanaged provider, it was populating the tnsnames entries. It was a bit baffling to me, because i was able to tnsping,make an sqlplus connection to the same oracle database (and it was using the tnsnames).
So then i tried using the EZConnect option (under connection Type) and gave the full details of my database hostname,server etc.
This time I got an error OracleInternal.Network.Addressresolution exception. This was again weird to me. So i googled online to see anyone else had this message, and i found that this message came along with an inner exception indicating why the address resolution failed. However i didnt get any, so i was not sure what was the cause.
and wrote a simple test app trying to get a count from a table in the db. Upon debugging, i found that the app threw the same network resolution error and when i looked at the inner exception, it mentioned that the address resolution failed while reading ldap data. I dont know why it threw that error, because in my sqlnet.ora, i have TNSNAMES first and then LDAP.ora.
3a8082e126