切换到OLE DB的Oracle提供程序后,CASE语句不起作用
我目前正在将SSIS包从VS2008迁移到VS2012,以便在64位服务器上运行,遇到了一个问题,我似乎无法找到在线解决方案。我们有几个数据流任务,用于连接和从不同的Oracle服务器提取数据。我们在大多数数据流任务中使用了“Microsoft OLE DB Provider for Oracle”,但Microsoft Provider似乎没有64位版本 因此,通过成功的连接测试,我使用“Oracle Provider for OLE DB”创建了一个新的连接管理器。我知道TSQL和PLSQL之间存在差异,Oracle提供程序读取数据的方式与Microsoft提供程序(内联注释、方括号等)也存在差异,但我似乎无法指出以下代码在预览结果时失败的原因。我认为问题在于案例陈述,因为当我完全取出案例陈述时,预览运行良好 此外,此代码在Microsoft提供程序中运行良好,并且在TOAD中直接连接到Oracle数据库时也能正常工作切换到OLE DB的Oracle提供程序后,CASE语句不起作用,oracle,visual-studio-2008,ssis,case-statement,Oracle,Visual Studio 2008,Ssis,Case Statement,我目前正在将SSIS包从VS2008迁移到VS2012,以便在64位服务器上运行,遇到了一个问题,我似乎无法找到在线解决方案。我们有几个数据流任务,用于连接和从不同的Oracle服务器提取数据。我们在大多数数据流任务中使用了“Microsoft OLE DB Provider for Oracle”,但Microsoft Provider似乎没有64位版本 因此,通过成功的连接测试,我使用“Oracle Provider for OLE DB”创建了一个新的连接管理器。我知道TSQL和PLSQL
/*----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---*/
错误:
“显示预览时出错。ORA-00905:缺少
关键字(OraOLEDB)”
规格:
Microsoft Visual Studio 2008-专业版版本9.0.30729.4462 QFE
版本3.5 SP1 SQL Server集成服务
Microsoft SQL Server集成服务设计器
版本10.50.4000.0 解决方案:
谢谢大家的帮助。在研究了建议的项目后,我找到了一个“解决方案”。解决方案:我安装了Oracle 10g,重启了pc,工作正常。欢迎使用Stack Overflow!第一篇文章不错-您已经提供了代码,可以复制行为、错误消息以及预期和实际结果。您是否使用最新版本的Oracle Provider for OLE DB?某些版本中的“SELECT CASE…”语句存在错误。例如,9.2.0.4.0版本修复了两个这样的bug()。我看到Oracle Provider有很多版本。我如何知道我使用的是哪个版本的Oracle Provider,以及我如何知道我得到的是正确的版本?我正在使用Oracle 9i。感谢大家的帮助。在研究了建议的项目后,我找到了一个“解决方案”。解决方案:我安装了Oracle 10g,重新启动了pc,工作正常。。。smh@peppep1101你能把这个作为答案贴出来,并把它标记为接受吗?这样,未来的读者将立即知道如何解决这个问题。