2015-01-08 81 views
0

你好,先谢谢你阅读我的问题。SSIS更新Oracle DB

我在SSIS中工作并试图在Oracle SQL开发人员中查看视图并更新表中的任何匹配行。通过四处搜索,我发现SSIS在更新Oracle数据库时遇到了一些问题,您可以通过OLE DB Command来完成。所以我所做的是添加了一个OLE DB Source来引入我在Oracle SQL Developer中创建的View。该源与目标表具有完全相同的列。然后我将它连接到OLE DB命令。我选择了合适的连接管理器,并且必须在“输入和输出”选项卡中添加外部列以匹配目标表所具有的内容。这使我可以选择所有的列映射。但是,我遇到的问题似乎与我在“组件属性”选项卡的“自定义属性”部分中键入的SQLCommand相同。在这方面有经验的人可以帮助我完成这个设置吗?下面是我的SqlCommand(目前,它给了我一个错误“ORA-01008:未绑定所有的变量。”当我尝试执行):

UPDATE DB.PERMDB 
SET 
DB.PERMDB.NET_TIME = :NET_TIME, 
DB.PERMDB.PROC_ZONENAME = :PROC_ZONENAME, 
DB.PERMDB.NET_TIME2 = :NET_TIME2, 
DB.PERMDB.PROC_ZONENAME = :PROC_ZONENAME2, 
DB.PERMDB.LAST_DISCOVERY = :LAST_DISCOVERY1, 
DB.PERMDB.PULSEDATE = :PULSEDATE1 
WHERE 
DB.PERMDB.COMBREL = :COMBREL1 
+0

像你的数据流中的'NET_TIME'列吗? – billinkc

+0

是的......它是我的OLE DB Source中的一个导入列,是否应该在其前面包含视图名称?防爆。 DB.VIEW.NET_TIME? – QuestionsGalore

+0

您是否正在'ORA-00933:SQL命令未正确结束?或者是来自其他层的错误?该语句看起来不错(除了将'NET_TIME'设置为自身,这不会出错,但可能不是您想要的)。 –

回答

0

我结束了使用脚本任务运行更新查询,它的工作就像一个魅力。