SSIS 增量更新 需要使用变量中的SQL命令 总是提示有问题 请前辈们指导下

0
从oracle 加载数据到 SQL Server数据库中,订单数据做成增量更新。

不能直接用“SQL 命令”???
用“变量中的SQL命令”,但是限制好多,一直不能通过,希望大侠们看下。如何写这个命令语句啊?
或者有什么更好的方法及建议。

语句如下:
Select * from Table_j j
where
(j.ETR_DATE >= '" + @[User::LastSuccessTime] + "' and j.ETR_DATE < '" + @[User::CurrentDate]"')
or
(j.MDF_DATE >= '" + @[User::LastSuccessTime] + "' and j.MDF_DATE < '" + @[User::CurrentDate]"')

整条语句为一个string的变量,其中LastSuccessTime和CurrentDate是自定义的两个datetime类型的变量
已邀请:
0

wsdlz - 90 2016-05-26 回答

最好使用OLE DB 源链接Oracle,时间变量最好改为字符串,不要datetime
 
将语句放在定义String变量里面,在该变量的表达式生成器中写成对应的整条语句,view下可以看看是否正确
在OLE DB 源的里面的‘变量中的SQL命令’里用String变量,
 
注意定义的变量在语句中会没有数据,
必须在执行的时候,@[User::LastSuccessTime]和@[User::CurrentDate]赋过值后才能用
 
0

freewing 2016-05-26 回答

@[User::LastSuccessTime] 和@[User::CurrentDate]是程序里的?
 
感觉,至少得:(后面少了个+号
Select * from Table_j j 
where 
(j.ETR_DATE >= '" + @[User::LastSuccessTime] + "' and j.ETR_DATE < '" + @[User::CurrentDate]+"') 
or
(j.MDF_DATE >= '" + @[User::LastSuccessTime] + "' and j.MDF_DATE < '" + @[User::CurrentDate]+"')
即:"Select * from Table_j j where (j.ETR_DATE >= '" + @[User::LastSuccessTime] + "' and j.ETR_DATE < '" + @[User::CurrentDate]+"') or (j.MDF_DATE >= '" + @[User::LastSuccessTime] + "' and j.MDF_DATE < '" + @[User::CurrentDate]+"')"
或者,如果是SQL里的,既然类型一样,就直接比较吧
Select * from Table_j j 
where 
(j.ETR_DATE >=  @[User::LastSuccessTime]  and j.ETR_DATE <  @[User::CurrentDate]) 
or
(j.MDF_DATE >=  @[User::LastSuccessTime]  and j.MDF_DATE < @[User::CurrentDate])
0

li052468 2016-05-27 回答

为什么要把sql放在一个变量里面,不能直接直接放在一个执行sql任务里吗
0

- 取是能力,舍是境界 2016-05-27 回答

Oracle里面的日期是不是要用to_date函数处理下,不能直接字符串啊。
 
其实你可以把这个生成的SQL变量打出来,然后拿到pl/sql中执行下

要回复问题请先登录注册