CASE statement not working after switching to Oracle Provider for OLE DB

I am currently porting SSIS packages from VS2008 to VS2012 to run on a 64 bit server and am facing an issue that I cannot find online. We have multiple data flow tasks that connect and retrieve data from different Oracle servers. We have used the "Microsoft OLE DB Provider for Oracle" for most of our data flow tasks, but it seems the Microsoft provider does not have a 64-bit version.

So, I created a new connection manager with "Oracle Provider for OLE DB" with a successful connection test. I know there are differences between TSQL and PLSQL, as well as differences in how the Oracle provider reads the data versus the Microsoft provider (inline comments, square brackets ... etc), but I can't figure out exactly if why the following code doesn't work when I try to view the results. I believe the problem is with the CASE expression, because when I fully accept the case statements, the scan is fine.

Also, this code works great with Microsoft vendor and also works in TOAD when connecting directly to Oracle database.

/*----My example code---*/

SELECT  
    CASE  
        WHEN ORDER_NUM IS NOT NULL  
        THEN 1   
        ELSE 0  
    END AS ORDER_FLAG  
FROM TABLE1

/*----END My example code---*/

      

ERROR:

"Preview error. ORA-00905: missing keyword (OraOLEDB)"

SPECIFICATIONS: Microsoft Visual Studio 2008 - Professional
Version 9.0.30729.4462 QFE
Version 3.5 SP1

SQL Server
Integration Services Microsoft SQL Server Integration Services Designer
Version 10.50.4000.0

SOLUTION: Thanks for your help. After examining the suggested elements, I found a "solution". Solution: I installed Oracle 10g, restarted my computer, works fine.

+3


source to share





All Articles