Getting BIDS 2008 R2 to connect to Oracle using MSDAORA on Windows 8 - oracle

I have a new dev machine, and I need to support legacy SSIS packages. The new machine is Windows 8 64 bit with a SSD primary drive (C:) and a regular HDD for data (D:). On it, I have installed BIDS 2008 R2 (and all the tricks to get it to work with TFS2010), as well as VS2010, ODAC 32 bit and 64 bit (I think??), Oracle Client (SQLDeveloper).
I can get the following to connect just fine to an Oracle database:
VS2010 with MSDAORA
VS2010 with ODAC
VS2010 with ADO.NET
Test connection using .udl file with Oracle OLE DB Provider (MS provider does not show up as an option here)
SQLDeveloper (Oracle's Client Tool)
What I CAN'T seem to do is get BIDS 2008 R2 to connect to Oracle using ANY method (MSDAORA, ADO.NET, ODAC).
The problem seems isolated to my machine, I can otherwise open, view, validate, connect and run these packages on other machines with no issues.
I have tried the following:
Ensured any/all TNSNAMES files are correct and identical (taking working copies from other machines, and let's not forget, this works fine in VS2010)
Created ORACLE_HOME and TNS_ADMIN Environment Variables and pointed them to various directories within D:\app\username\product\11.2.0
Checked registry manually to make sure no other references to ORACLE except for the entries in HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Unistalled/Reinstalled SQL Server 2008 R2 components
Every "solution" offered in every thread in every search I have tried
Thrown chicken bones and offered sacrifices to pagan deities
After each attempt at a fix, I still get the following error when trying to Preview a SQL Command in the Data Flow:
An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult: 0x80004005 Description: "Error while trying to retrieve text for error ORA-01019"
Yes, I know I need to drop MSDAORA in favor of ODAC, and if ODAC worked in BIDS 2008 R2 I would certainly do it. However, I can't get anything to connect to Oracle there (even though, as mentioned above, it connects fine in various other tools)
I have two "client_n" directories in D:\app\username\product\11.2.0. As mentioned, I have tried pointing my environment variables to various paths inside. It seems like the correct path for ORACLE_HOME should be just D:\app\username\product\11.2.0, correct?
Has anyone had any luck getting BIDS 2008 R2 to connect to Oracle while on WINDOWS 8 with VS2010 also installed? It seems to me like it's a simple Oracle connection issue, I just don't know enough about Oracle to troubleshoot.
Any other ideas to try?

BIDS is x32 (even on an x64 machine), so you will need to install the Oracle Client x32 edition, Full Install.

We were able to get it to work, though I believe that we installed too much software. (I have not been able to test it with only the ODAC drivers.)
Install the Oracle Client 32 & 64-bit drivers.
Install the Oracle ODAC 32 & 64-bit drivers.
In BIDS use the native Oracle connection, and not the Microsoft driver.

Related

How do I do an ODBC connection to ORACLE from SSIS/ Visual studio?

Despite that OLE DB and ADO.NET are newer than ODBC potentially, I've heard that ODBC connections to Oracle are potentially faster within SSIS.
I'm trying to set up a simple ODBC connection to an Oracle DB in SSIS
The OLE DB / ADO.Net connections were easy. I entered the credentials and boom, connected.
ODBC proves very difficult. I'm running Windows 10 64 bit. Visual Studio 2015 (I believe the designer for SSIS was only meant to initially play with 32-bit ODBC connections). Oracle is version 12c.
So ... I did the convoluted Oracle driver install. Downloaded Oracle basic light express + ODBC. Put them in the same directory. Ran odbc.install.exe WITH admin privileges. Finally got the Oracle driver to show up in Microsoft ODBC (32 or 64, ended up downloading both eventually). I test the connection in Microsoft ODBC setup? Success!! NOOOOW. .. enter Visual studio. Set up connection --- test --- FAIL! Some cryptic error .... 127 ... the "oracle" in quora32.dll can't be found.
Are Microsoft Drivers for Oracle still available for download?
32-bit vs 64-bit
I think that the main cause of the problem is that Visual studio is a 32-bit application and the ODBC driver installed is 64-bit. On the other hand the operating system is 64-bit then it will work normally. Check the following links for more information:
ODBC Connection not appearing SSIS
Set up the ODBC Driver for SSIS
Attunity connectors
I really didn't tried connecting to Oracle using ODBC, but if your goal is to achieve higher performance then the fastest way to connect to Oracle from SSIS is using Attunity high speed connectors for Oracle that have been selected by Microsoft to be included with SQL Server Integration Services (SSIS).
Check the following links for more information:
Microsoft Connectors for Oracle and Teradata by Attunity for Integration Services (SSIS)
Microsoft Connectors by Attunity
Oracle provider for Oledb missing in VS 2015 Shell
SSIS not running in parallel with OraOLEDB.Oracle.1 Provider
As noted in various ways on this question, the VS IDE (and its typical testing environment) is 32-bit, even when installed/running on 64-bit Windows, or when building for use/deployment on 64-bit Windows. My employer has a knowledgebase article discussing this.
Also, SQL Server, SSIS, and VS are always OLE DB or ADO.NET clients; they don't actually speak ODBC directly. When you tell either SQL Server, SSIS, or VS to connect to an ODBC driver or ODBC DSN, they invisibly use the Microsoft OLE DB [Bridge] Provider for ODBC Drivers for that connection.
The easiest way to work around all this, given that you explicitly want to use ODBC, is to install both 32-bit and 64-bit variants of all OLE DB (including the Bridge Provider) and ODBC components (and any libraries on which they depend, such as OCI or Oracle Instant Client), and to configure a pair of ODBC System DSNs (not User DSNs, for several reasons), one each 32-bit and 64-bit, which are named and configured identically excepting only the driver library.
This strategy works whether you're using ODBC drivers from my employer (which might be the "12-15x faster" ones referenced previously? if so, it's important to note that Enterprise Edition "concurrent users" is about actively connected clients, not installed seats), from another third-party, or from Oracle themselves.

Proper Oracle ODBC Driver Installation on 32 bit Windows 7

I am using an Excel VBA application to connect to an Oracle 12c database.
Excel is 2010, 32 bit, in Windows 7.
Many have advised Oracle Instant Client, but this has not worked for me. The installation requires a number of configuration steps that I cannot perform due to administrative restrictions on my workstation.
However, I have installed the ODAC 12.2c Release 1 and Oracle Developer Tools for Visual Studio (12.2.0.1.0), available HERE. This package includes the Oracle ODBC driver which works for my application. However, it contains several other components that I do not need, and throws some errors during installation that are disconcerting.
Can anyone tell me which of the following components I actually need to select in order to get the ODBC Driver?
Since I cannot get InstantClient to work with my companies restrictions, I'm now aiming to use this package, but hopefully to slim it down to just the component I need. I'm doing trial and error, but it's messy. The installation takes a long time and there's no uninstaller, so I have to manually delete the files after installation.
Thanks for any help you can provide!
The smallest solution is to download the
Instant Client Package - ODBC: Additional libraries for enabling ODBC applications (instantclient-odbc-nt-12.2.0.1.0-2.zip)
from Instant Client Downloads for Microsoft Windows 32-bit
You can also download the ODAC with Oracle Developer Tools for Visual Studio from ODAC Developer Downloads - Oracle Universal Installer
Get the full 32-bit Oracle client installer (not the ODAC) from here:
http://download.oracle.com/otn/nt/oracle12c/122010/win32_12201_client.zip
Do an silent install using this reponse file (edit as needed and save as client_install_32.rsp in the same directory as setup.exe)
Response file
setup.exe" ORACLE_HOME_NAME=OracleClient12201x32 -waitforcompletion -nowait -silent -responseFile client_install_32.rsp
The key config entry is this:
oracle.install.client.customComponents="oracle.rdbms.oci:12.2.0.1.0","oracle.network.client:12.2.0.1.0","oracle.odbc:12.2.0.1.0"

ODAC for visual studio 2013

There are a lot of ODAC download at the Oracle website but I want to know what is the right ODAC to download for my VS 2013? I have a Windows 7 64-bit OS.
And also, do I need to install ODAC on BOTH my laptop (where I will create my project) and to the Oracle database server?
When I'm trying to connect to my Oracle database, it throws me this error:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
so I read other blogs saying that I should install ODAC, but these blogs example are using either VS2005 or VS2008, but mine is VS2013
Start with easy answers:
No, you don't have to install any ODAC on Oracle database server (most likely they might be installed anyway by default)
It does not matter at all which Visual Studio you have, regarding Oracle installation they are all the same.
Now regarding your error:
"Microsoft .NET Framework Data Provider for Oracle", i.e. System.Data.OracleClient is deprecated for ages, you should not use it in new projects. You should use the Oracle provider "Oracle Data Provider for .NET" (ODP.NET), so by downloading ODAC from Oracle you have been on the right path.
When you like to use ODP.NET you also have to install an Oracle Client, otherwise it does not work (this requirement is also valid for System.Data.OracleClient, that's the actual error you get).
You can either install "Oracle Instant Client" and ODP.NET or download full Oracle Client where you can make a "Custom" installation. There you have to enable component "Oracle Data Provider for .NET" at least.
It is important to have everywhere the same architecture, i.e. Oracle Client, ODP.NET and your application must be all the same - either x86 or x64 ("AnyCPU" means x64 on nowadays 64-bit Windows). In case you have to support both x86 and x64 follow this instruction to install x86 and x64 on one machine.
Another possibility is to use the "ODP.NET Managed Driver", this one is just a single .dll and does not require any further Oracle client installation. Unlike "ODP.NET" the "ODP.NET Managed Driver" does not depend on the architecture, i.e. it works for both x86 and x64.
It does not matter whether your database is 32-bit or 64-bit. This applies for everything mentioned above.

Is an OLE DB Oracle datasource possible in VS 2005 on Windows 7 x64? (if so how?)

I'm really not sure if this is the correct forum for this, apologies if I should aim this elsewhere.
I've been given (as a very silly experiment IMO) a Windows 7 x64 machine at work. This might be fine if I didn't have to get anything done. Unfortunately, since we're running SQL Server 2005, I need BIDS 2005 in order to edit and publish the existing SSIS packages on the server. BIDS 2005 does not play amazingly well with Windows 7 x64, the very smallest of annoyances is the complete inability to compile scripts without opening them.
Anyway, I now have a need to connect to an Oracle datasource so I can export results from it, but no matter what I try, I end up with the dreaded "protocol adapter error" when I try to connect within BIDS.
I've installed the 32 bit version of the full Oracle client and I can connect via ODBC and SQL Developer, but when I try to create an OLE DB connection within BIDS (with either the microsoft or Oracle driver), all I get is the error described.
I really don't like Oracle, so I haven't used it enough to even know how to begin to troubleshoot this, although I will say that SQL*Plus has the same problem, despite being able to TNSPing the server.
Any ideas? I'm a short step away from either reinstalling windows or running a 32-bit virtual machine and doing all my development in there.
Sounds like the issue may be at the Oracle side...but if you can connect via ODBC can you try using the ADO.NET Data Source instead of the OleDb source?
Weirdly, it's working now, and I'm really not sure why. Let's chalk this one up to Oracle being broken and strange generally, although there are a few things that are worth learning from this :
BIDS needs to be restarted whenever you make changes to TNSNames.ora. It seems this is even the case when you supply the full TNS connection in the connection string.
On Windows 7, it is IMPERATIVE that you run the Oracle deinstall.bat as Administrator. If you don't you'll end up with a broken Oracle installation that is almost impossible to remove cleanly.
Despite being able to use a 64bit SSIS run-time, BIDS 2005 cannot use the 64bit Oracle drivers.
If you like having a (relatively) clean dev system, do not install the Oracle client - it's possible to install the 32 and 64 bit drivers side but uninstalling them is non-trivial and not guaranteed to work (for example, I've actually ended up with the 32bit drivers installed on my machine now, but due to previous uninstallations the ODBC manager can't see the Oracle drivers)
I think next time I'll just do my development in a disposable virtual machine.

Anybody seen this behavior with Sql Server Reporting Services, a 64bit OS and an Oracle datasource?

I'm working on a Sql Server Reporting Services solution that queries across both a Sql Server data source and an Oracle 10g data source. My dev box is Windows 7 64bit with Sql Server 2008R2 and I'm hosting IIS7 and SSRS on that system for development; using VS.NET for designing the reports.
I have been having errors when running the report where SSRS complains about loading the 32 bit Oracle client in a 64bit process. There a number of threads out there about how to solve that. The thing is, they all come down to making sure you have the 64bit Oracle, client which I do. The weird chain of events I have goes like this:
Create initial Oracle datasource and wire up report (it works)
Edit Oracle datasource connection (it stops working with BadImageFormatException 32bit/64bit error message)
uninstall and reinstall Oracle client (it works)
Edit Oracle connection again (it stops working with BadImageFormatException 32bit/64bit error message)
So short of reinstalling the client every time I change the connection string I am at a complete loss. Has anybody seen this sort of behavior? And if so what the heck am I doing wrong?
Originally answered here: SSRS report with 32-bit Oracle Client Not working in 64-Bit Environment
This is the second time I configure a similar server, and the second time I spend hours figuring this one out. If for nobody else, I am writing this for the future me. This is for a Windows Server 2012 R2 64bit, 8GB RAM, 300+GB HDD, Intel Xeon CPU E5620 # 2.40GHz, that is running Microsoft SQL Server Reporting Services 2012 64bit and IIS 7.0 with web applications that use the Oracle Client 32bit connection System.Data.OracleClient
Install the 64bit client
Change the name of the Oracle inventory directory # "C:\Program Files\Oracle" to "C:\Program Files\Oracle64"
Restart computer and test for connection from SSRS to Oracle
Install the 32bit client and specify a different location for its home directory
Restart computer and test connection from SSRS to Oracle and from Web Applications to Oracle
I hope this helps my future self and others :)
You need to install 64 bit Oracle Client. Beware, i had bad experience on having both oracle 32 bit and 64 bit client. I ended up uninstalling 64 bit oracle client and trying to figure out installing SSRS in 32 bit mode on 64bit win7.

Resources