Sql 带有时间戳的Oracle列(6)使用ssis提取数据类型
我正在尝试使用SSIS将oracle表数据拉入sql server。我有一个包变量,用于保存需要在oracle db中激发的源查询。我有一个带有oledb源(oracle)和oledb目标(sql server)的数据流任务 oledb源查询(变量)如下所示Sql 带有时间戳的Oracle列(6)使用ssis提取数据类型,sql,oracle,oracle11g,ssis,timestamp,Sql,Oracle,Oracle11g,Ssis,Timestamp,我正在尝试使用SSIS将oracle表数据拉入sql server。我有一个包变量,用于保存需要在oracle db中激发的源查询。我有一个带有oledb源(oracle)和oledb目标(sql server)的数据流任务 oledb源查询(变量)如下所示 Select A,B,C From "Table" TT Where C in (Select coalesce(ab,cd) as c From "Table" T2
Select A,B,C
From "Table" TT
Where C in (Select coalesce(ab,cd) as c
From "Table" T2
Where Last_Upd_Dt >= '2018-09-24 12:00:00')
列Last\u Upd\u Dt
是源oracle DB中的时间戳(6)
,默认值为LocalTimeStamp
我的问题是,我的输入参数值应该是什么格式,这样我就不必将Last\u Upd\u Dt
列转换为to\u DATE()
,to\u CHAR()
等
如果我使用SSI运行该查询,我会得到
ORA-01843:不是有效月份
只用
... Where Last_Upd_Dt >= to_date('2018-09-24 12:00:00','yyyy-mm-dd hh24:mi:ss')
或
您可以参考以下演示:
SQL> create table tab ( id int not null, time timestamp(6) default LocalTimeStamp not null );
Table created
SQL> insert into tab(id) values(1);
1 row inserted
SQL> select * from tab t;
ID TIME
-- --------------------------
1 26/09/2018 08:23:23,068025
SQL> select * from tab where Last_Upd_Dt >= to_date('2018-09-24 12:00:00','yyyy-mm-dd hh24:mi:ss');
ID TIME
-- --------------------------
1 26/09/2018 08:23:23,068025
SQL> select * from tab where Last_Upd_Dt >= timestamp'2018-09-24 12:00:00';
ID TIME
-- --------------------------
1 26/09/2018 08:23:23,068025
SQL> select * from tab where Last_Upd_Dt >= to_date('2018-09-26 12:00:00','yyyy-mm-dd hh24:mi:ss');
ID TIME
-- --------------------------
--> no rows selected
日期
和时间戳
关键字。您可以将逻辑表示为:
where Last_Upd_Dt >= TIMESTAMP '2018-09-24 12:00:00'
如果没有时间组件,请执行以下操作:
where Last_Upd_Dt >= DATE '2018-09-24'
where Last_Upd_Dt >= DATE '2018-09-24'