title: CASE statement not working after switching to Oracle Provider for OLE DB
body: <p>I am currently migrating SSIS packages from VS2008 to VS2012 to run on a 64-bit server and have come across an issue I can't seem to find a resolution to online. We have several Data Flow tasks that connect and pull data from different Oracle servers. We used the "Microsoft OLE DB Provider for Oracle" for most of our Data Flow tasks but it appears the Microsoft provider does not have a 64-bit version.</p>
  
  <p>So, I created a new connection manager with the "Oracle Provider for OLE DB" with a successful connection test. I'm aware that there are differences between TSQL and PLSQL, also differences in how the Oracle provider reads in data compared to the Microsoft provider (inline comments, square brackets...etc), but I can't seem to pinpoint why the following code is failing when I try to preview the results. I believe the issue lies in the CASE statement because when I completely take the case statements out the preview runs fine.</p>
  
  <p>Also, this code runs fine with the Microsoft Provider and also works in TOAD when directly connecting to the Oracle database.</p>
  
  <pre><code>/*----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---*/
  </code></pre>
  
  <p>ERROR:</p>
  
  <blockquote>
    <p>"There was an error displaying the preview.    ORA-00905: missing
    keyword(OraOLEDB)"</p>
  </blockquote>
  
  <p>SPECS:
  Microsoft Visual Studio 2008 - Professional<br>
  Version 9.0.30729.4462 QFE<br>
  Version 3.5 SP1</p>
  
  <p>SQL Server Integration Services<br>
  Microsoft SQL Server Integration Services Designer<br>
  Version 10.50.4000.0  </p>
  
  <p>SOLUTION:
  Thank you all for your help. After researching the suggested items I've found a "solution". Solution: I installed Oracle 10g, restarted pc, works fine.</p>