Unable to connect to Oracle database from SSAS - oracle

I am attempting to create a Sql Server Analysis Services Tabular Model and am having trouble accessing an Oracle database for importing data. I am using the following:
OS
-Windows 10 Enterprise (I am administrator of machine)
Tools to create tabluar cube:
-Visual Studio Community 2022 (64 bit) - Current Version 17.2.5
-SQL Server Analysis Services 15.0.2000.5 - Developer Edition (installed on localhost, services running)
Oracle database:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 Production Version 21.3.0.0.0 - Developer Edition (installed on localhost), up and running and able to connect with other tools (e.g. Toad, Sqlplus, SqlDeveloper, cx_python, etc..)
I have a 64-Bit System Data Source Name created for ODBC connections, using Oracle Instant Client. This data source works just fine with other tools mentioned in the Oracle databse section above.
When creating a SSAS tabular model in Visual Studio and attemping to import a data source, I try the following:
Models
-TabularProject (my project)
-Data Sources > New Data Source > Oracle Database
At this point I get the following message:
Oracle Database
The recommended provider ('Oracle.DataAccess.Client') is not installed. You can continue with your current provider, however, it has been deprecated and may not work correctly.
and I click 'OK'.
From here, I enter the connection string of my locally hosted oracle database (localhost:1521/MY_DB.
When prompted for credentials, I select 'Database' and then enter the correct username/password to connect to my locally hosted oracle database.
Then I receive an error stating:
Unable to connect
We encountered an error while trying to connect.
Details: "An error happened while reading data from the provider: 'Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.'"
I've also tried the following method:
Models
-TabularProject (my project)
-Data Sources > New Data Source > ODBC
Then I choose my ODBC datasource for my locally hosted database (which seems to work fine for other apps) and I receive the following error:
Unable to connect
We encountered an error while trying to connect.
Details: "ODBC: ERROR [IM014] The specified DSN contains an architecture mismatch between the Driver (64-bit) and Application (32-bit)"
I have installed various Oracle Drivers including:
-64-bit ODAC: ODAC122010Xcopy_x64.zip
-64-bit instantclient basic: instantclient-basic-windows.x64-21.6.0.0.0dbru.zip
-64-bit instantclient odbc: instantclient-odbc-windows.x64-21.6.0.0.0dbru.zip
-64-bit instantclient sqlplus: instantclient-sqlplus-windows.x64-21.6.0.0.0dbru.zip
I have also tried these same steps for a remote hosted Oracle database (using both ezconnect string and a ODBC DSN) and even though the connections work just fine with other apps, it doesn't work with SSAS for some reason.
Any and all insight advice to get my SSAS tabular model connected to Oracle databases would be very much appreciated.
EDIT:
I have tried following a solution from this similar question and create a dsn, suffixed with _64, using only the 64-bit ODBC manager, yet I get the same results when trying to use that DSN with SSAS.
I have also tried the following steps, per Microsoft:
From https://learn.microsoft.com/en-us/sql/reporting-services/report-data/oracle-connection-type-ssrs?view=sql-server-ver16#64-bit-and-32-bit-drivers-for-power-bi-desktop:
2. Register ODP.NET Unmanaged Client to GAC:
C:\Oracle\odp.net\bin\4\OraProvCfg.exe /action:gac /providerpath:C:\Oracle\odp.net\bin\4\Oracle.DataAccess.dll
3. Add ODP.NET Unmanaged Client entries to machine.config:
C:\Oracle\odp.net\bin\4\OraProvCfg.exe /action:config /force /product:odp /frameworkversion:v4.0.30319 /providerpath:C:\Oracle\odp.net\bin\4\Oracle.DataAccess.dll
Yet, I still receive all errors shown above.

Related

Unable to connect to Oracle database from SSIS

I am new to SSIS and ETL .I have a task to connect to oracle database from SSIS. But when I am giving source as OLEDB source and select Microsoft OLEDB provider for Oracle along with server name and credentials, it throws me an error on testing the connection. i.e.
"Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.
Provider is unable to function until these components are installed."
I have seen many posts and blogs but I could not follow the steps and where I followed I could not connect. Hence I request you to please guide me in achieving the same.
You need to install Oracle Client on the server that holds your SQL Server database. Oracle Client is free of charge.

SSMA for Oracle "Connect to Oracle" error

i tried to connect to Oracle using Sql server migration assistant for oracle(SSMA for oracle).
and specified parameters like this
provider: Oracle Client Provider
mode: standard mode
and connection info(servername, port ...)
but i got a error message
"Unable to find specified provider.
Compatible Oracle Data Access Connectivity libraries were not found on the machine. You can install them from Oracle product media or download it from Oracle web site."
so i installed Oracle Data Access Components(ODAC),
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
but same error message appeared.
what is Compatible Oracle Data Access Connectivity library?
I faced the same problem, Oracle Data Access Components (ODAC) are required for applications to connect to the database, to use "SSMA" you need to install Oracle instant client,
1) Download http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html
2) Unzip, then add the folder to the path, open control panel > system > Advanced > Environment Vriables > choose Path and Edit it to add a new entry with your folder.
3) Connect with the 'system' user (user id = system)
see also this answer it helped me https://stackoverflow.com/a/26439785/4542599

How to find driver and port number from Windows Server for Progress database 11

I'm getting an error from report:
The OLE DB provider "MSDASQL" for linked server "linkname" reported an error. The provider reported an unexpected catastrophic failure.
I'm checking to find out the installed driver and port number from the Windows server 2008 R2. I checked in "C:\Windows\System32\drivers\etc" services file, but unable to get which exact service I need to check?
My ODBC data source administrator window is listing below drivers:
1. MySQL ODBC driver
2. Oracle in OraClient 10g
3. SQL Server
4. SQL Server native client
How can I find the detailed information; what is the current driver installed on what port number ? Is the current driver installed is compatible with Progress DB ? If it's not compatible, which latest driver I need to install to make it compatible with Progress 11?
You will need to download the SQL Client Access software from Progress web site.
https://www.progress.com/support/evaluation/download-resources/download-center
Look for the SQL Client Access:

10.2g to 11.2g and Microsoft ODBC for Oracle issues

My team are trying to migrate from ORACLE 10g to 11g. These are our system specs:
Our current production server:
ORACLE 10.2g
ORACLE Application Express(3.0)
Apache
Red Hat 64 bit
Our new server (not yet in production):
ORACLE 11.2g
ORACLE Application Express (4.1.1)
ORACLE HTTP Server
Red Hat 64 bit
We have managed to setup 11g, install APEX 4.1 and apply the recent patchset.
The only bit that's delaying us with our migration is that our business users have access to Crystal Reports XI, MS Access/Excel 2003 whcih they use to connect to our database. A typical user has Window XP SP 3 (32bit) operating system. At the moment we are using Microsoft ODBC for Oracle driver (version 2.575.1132.00) to connect to our 10g Database and have not had any issues. However when we try connect to 11g we keep getting ORA-03113: end-of-file on communication channel errors. In ORACLE SQL Developer, we're able to connect to our 11g instance using the "basic" connection. I have also used the "TNS" entries and that works well.
I think the business users obtained the Microsoft ODBC for Oracle driver by installing ORACLE Discover 3.1.3.6 which is used for another Oracle DB. They also have Oracle Client 7.3.3 which I can see Oracle73 (2.00.03.01) mentioned in the ODBM Data Source Admin screen.
We have tried googling for a result and after various tests, we have come to the conclusion that it is an ODBC driver issue. As far as our understand it ORACLE SQL Developer uses a different JAVA based driver to connect so it does not use the Microsoft version.
Can someone confirm that our understanding is correct about there being a compatibility issues with Microsoft ODBC for Oracle driver (version 2.575.1132.00) and 11.2g?
If so, what could you recommend a compatible driver to use with Crystal and Access/excel to extract the data?
I think the business users obtained the Microsoft ODBC for Oracle driver by installing ORACLE Discover 3.1.3.6 which is used for another Oracle DB. They also have Oracle Client 7.3.3 which I can see Oracle73 (2.00.03.01) mentioned in the ODBM Data Source Admin screen.
The Microsoft ODBC Driver for Oracle is written using an ancient version of the OCI (Oracle Call Interface) API that was deprecated when Oracle 8 was released (which was more than a decade and 11 major releases ago). Microsoft chose to desupport this driver rather than port it to the new version of the OCI API. Oracle 7 clients can connect to Oracle 10.2 databases but Oracle does not support connections between Oracle 7 clients and Oracle 11.2 databases.
You'll need to upgrade the version of the Oracle client that is installed on the business user's machines and you'll want to use the latest version of the Oracle ODBC driver that is appropriate for that version of the Oracle client. Assuming that you install the 11.2 version of the Oracle client (the only reason not to upgrade all the way to the 11.2 client would be if the users still needed to connect to older databases that don't support connections from an 11.2 client), you'd want to use the most recent version of the 11.2.0.x Oracle ODBC driver. The Oracle client install should also have the option to install a version of the Oracle ODBC driver-- that should be sufficient as well.

ADO.NET for connecting Oracle Database on server

Recently we have developed an application which connects to oracle database for fetching records. For fetching records, we are using OLEDB for Oracle. Application runs fine on my machine by connectng properly with Oracle ,since i have oracle client installed on my machine. Now i tried to test application on another machine, which doesnot have any oracle instance/Client installed on his machine. Application fails to connect to oracle central DB Server. Is it necessary for users to install oracle client on their machine before the application communicates with Oracle.
Here is Connection string
connectionString="Provider=msdaora;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XYZ)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=abc.com)));Persist Security Info=False;User Id=mahens; Password=XXXXXXXXX" providerName="System.Data.SQLOLEDB"/>
The above code is for OLEDB for oracle. Is there any thing i required to install for connecting to central Oracle DB server from my windows application(.NET application installed on local machine).
If we try to use ODP.NET dll and include those dll's along within BIN directory,will that work?..Can any1 tell me a way wherein user need not install any oracle Client on their machine and communicate to server.
-Mahender
I believe you always need the oracle client installed as everything in .net ultimately uses ODP.NET. However, you can use the Oracle Instant Client to make your users' setup process easier.

Resources