SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR. The requested OLE DB provider OraOLEDB.Oracle.1 is not registered

StackOverflow https://stackoverflow.com/questions/8745655

Question

I have two servers:

Server A - This is where my SSIS packages live in a file directory

Server B - This is where my SQL Server 2008 database and SQL Server Agent Job lives.

On Server B, I have created a SQL Server Agent Job that has one step: It calls an SSIS package on Server A that performs a data extract from an Oracle Database into the SQL Server database on Server B. Job step details below...

Job Step Properties:

Type = SQL Server Integration Services Package

General Tab:

Package source = File system

Package = full package path

No other configurations have been made in the Job Step Properties

The SSIS package extracts data from an Oracle database and loads it into SQL Server using an OLE DB Source with a connection manager that uses the following provider: Native OLE DB\Oracle Provider for OLE DB

When executing the SSIS package manually from Server A using SQL Server Business Intelligence Development Studio, the package runs to completion with zero errors.

However, when executing the same package from Server B using the SQL Server Agent Job, the following error results:

Error: 2012-01-05 08:27:04.45 Code: 0xC0209302 Source: SSIS_PDS_Template Connection manager "My_OLE" Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR. The requested OLE DB provider OraOLEDB.Oracle.1 is not registered. Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered". End Error Error: 2012-01-05 08:27:04.45 Code: 0xC020801C
Source: CIR_OLE OLE DB Source [1] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.

Also, if I disable the Oracle database extract in the SSIS package and run the SQL Server agent job from Server B, it runs to completion with zero errors. How to resolve?

Was it helpful?

Solution

You need to install the Oracle OLE DB driver on Server B, which is running the package from Server A on Server B's memory. You really ought to look at scheduling and running them on Server A if that's a dedicated ETL box.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top