ora-00936缺少表达式 - 选择语句

时间:2017-07-14 20:32:10

标签: sql-server oracle ssis etl

我在ssis中有一个变量,带有查询

SELECT     OBS_TYPE_ID, OBS_TYPE_NAME, OBS_UNIT_ID, IS_LEAF, PATH, LEVEL0_NAME, LEVEL1_NAME, LEVEL2_NAME, LEVEL3_NAME, LEVEL4_NAME, 
                      LEVEL5_NAME, LEVEL6_NAME, LEVEL7_NAME, LEVEL8_NAME, LEVEL9_NAME, LEVEL10_NAME, LEVEL0_UNIT_ID, LEVEL1_UNIT_ID, 
                      LEVEL2_UNIT_ID, LEVEL3_UNIT_ID, LEVEL4_UNIT_ID, LEVEL5_UNIT_ID, LEVEL6_UNIT_ID, LEVEL7_UNIT_ID, LEVEL8_UNIT_ID, LEVEL9_UNIT_ID, 
                      LEVEL10_UNIT_ID, HIERARCHY_LEVEL, CREATED_DATE, CREATED_BY, LAST_UPDATED_DATE, LAST_UPDATED_BY
FROM         NIKUREP.NBI_DIM_OBS_V
WHERE LAST_UPDATED_DATE >= TO_CHAR(TO_DATE( @[User::LastModifiedDate] ,'YYYY-MM-DD'),'YYYY-MM-DD')

当我的数据流任务连接到oracle执行此操作时,我得到ora-00396缺失的表达式,有人可以帮助,一直试图弄清楚这一点

2 个答案:

答案 0 :(得分:2)

在变量选项卡上单击此变量,然后按F4以显示属性选项卡。

Evaluate as Expression更改为True,并使用以下表达式:

"SELECT     OBS_TYPE_ID, OBS_TYPE_NAME, OBS_UNIT_ID, IS_LEAF, PATH, LEVEL0_NAME, LEVEL1_NAME, LEVEL2_NAME, LEVEL3_NAME, LEVEL4_NAME, 
                  LEVEL5_NAME, LEVEL6_NAME, LEVEL7_NAME, LEVEL8_NAME, LEVEL9_NAME, LEVEL10_NAME, LEVEL0_UNIT_ID, LEVEL1_UNIT_ID, 
                  LEVEL2_UNIT_ID, LEVEL3_UNIT_ID, LEVEL4_UNIT_ID, LEVEL5_UNIT_ID, LEVEL6_UNIT_ID, LEVEL7_UNIT_ID, LEVEL8_UNIT_ID, LEVEL9_UNIT_ID, 
                  LEVEL10_UNIT_ID, HIERARCHY_LEVEL, CREATED_DATE, CREATED_BY, LAST_UPDATED_DATE, LAST_UPDATED_BY
FROM         NIKUREP.NBI_DIM_OBS_V
WHERE LAST_UPDATED_DATE >= TO_CHAR(TO_DATE('" + @[User::LastModifiedDate] + "','YYYY-MM-DD'),'YYYY-MM-DD')"

答案 1 :(得分:1)

这可能是 @ [User :: LastModifiedDate] 表达。

确保您的参数(@ [User :: LastModifiedDate])介于单引号之间。

更改表达式或尝试此

...

WHERE LAST_UPDATED_DATE >= TO_CHAR(TO_DATE( '''' || @[User::LastModifiedDate] || '''' ,'YYYY-MM-DD'),'YYYY-MM-DD')