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

2

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?

oracle
sql-server-2008
ssis
sql-server-agent
asked on Stack Overflow Jan 5, 2012 by Jon Jaussi • edited Dec 23, 2018 by Jon Jaussi

1 Answer

2

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.

answered on Stack Overflow Jan 5, 2012 by Eric • edited Jan 5, 2012 by Eric

User contributions licensed under CC BY-SA 3.0