Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS更新oracle表_Sql Server_Oracle_Ssis - Fatal编程技术网

Sql server SSIS更新oracle表

Sql server SSIS更新oracle表,sql-server,oracle,ssis,Sql Server,Oracle,Ssis,我有一个SSIS包,它可以更新Oracle表。我正在使用一个带有SQLServerOLEDB源和OLEDB命令的数据流任务来执行更新 正在执行的更新命令是: UPDATE NB_STG_APROV_WEB SET stock_comm = ? WHERE sku = ? AND data_info = trunc(sysdate - 1) 这两个参数都已映射。包执行成功,但表未更新。知道为什么吗?如果更新成功但表未更新,通常意味着1)WHERE子句未选择要更新的行,2)值正在“更新”到以

我有一个SSIS包,它可以更新Oracle表。我正在使用一个带有SQLServerOLEDB源和OLEDB命令的数据流任务来执行更新

正在执行的更新命令是:

UPDATE NB_STG_APROV_WEB 
SET stock_comm = ? 
WHERE sku = ? AND data_info = trunc(sysdate - 1)

这两个参数都已映射。包执行成功,但表未更新。知道为什么吗?

如果更新成功但表未更新,通常意味着1)WHERE子句未选择要更新的行,2)值正在“更新”到以前的值,3)您尚未提交事务,正在从其他会话进行检查,或者4)您正在更新一个表/数据库,并且意外地错误地检查了另一个表/数据库。你能很容易地检查这些可能性吗?您是否确实完成了提交事务的数据流任务?使用您的条件进行选择是否会返回您期望的行?答案:1)正在选择行。2) 原始值是“空值”,新值不是。3) 将提交添加到命令,结果相同。4) 我该怎么查呢?我不习惯与Oracle一起工作。在某个地方读到,在数据流任务中无法使用SQL命令更新Oracle表。。。这是真的吗?在Oracle数据库上创建staging表是不可能的。我刚刚尝试过,效果很好。SQL Server源代码,用于Oracle连接的OLEDB命令,使用
更新测试集val=?其中id=1
设置为SqlCommand,将变量从源映射到外部参数,运行它,通过在SQLDeveloper中查询在数据库中看到更新。所以这绝对是可能的。(另一方面,很遗憾你不能创建临时表;如果你更新了很多行,它们通常是一种更干净的方法。)@MattGibson这是你的完整更新命令吗?难道不需要发出commit语句吗?我的完整命令是
开始更新NB\u STG\u APROV\u WEB SET stock\u comm=?其中sku=?数据_info=trunc(sysdate-1);犯罪结束