2017-07-14 129 views
2

我在SSIS一个变量,以查询ORA-00936缺少表达-select语句

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缺少表达

,能有人请帮忙,一直想弄明白这个为期1周

回答

1

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

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

改变你的表达或试试这个

...

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

此@的输出[用户:: LastModifiedDate]会像“1960年1月1日”,因此添加单引号参数的日期将使它成为''1960-01-01'',同样你的查询也给我提供了同样的错误信息 – sab

+0

这个查询的结果是什么?你可以把它写在某处或看到它:“select @ [User :: LastModifiedDate] from ...”@ user3132672 –

+0

输出将是'1960-01-01'或最大日期'2017-06-17' – sab

2

在这一变量中的变量选项卡上单击,然后按下F4显示属性选项卡。

变化Evaluate as ExpressionTrue,并使用下面的表达式:

"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

你必须添加单引号'TO_DATE('“+ @ [User :: LastModifiedDate] +'',' – Yahfoufi

+0

您的查询已解决问题,并且我能够预览数据流任务,但是当我执行我的ssis pacakge ,我得到“说明:”ORA-00907:缺少右括号错误“,我不认为有任何缺失,缺少任何帮助? – sab

+0

尝试将数据流任务'Delay Validation'属性更改为'True' – Hadi