我必须在现有的SSIS解决方案中工作。其中一个初始步骤就是截断现有的Oracle表。
现有的有问题的SQL任务如下(替换模式和表)
<DTS:Property DTS:Name="Expression">"truncate table schema.table"</DTS:Property>
<DTS:Property DTS:Name="EvaluateAsExpression">-1</DTS:Property>
<DTS:Property DTS:Name="Namespace">User</DTS:Property>
<DTS:Property DTS:Name="ReadOnly">0</DTS:Property>
<DTS:Property DTS:Name="RaiseChangedEvent">0</DTS:Property>
<DTS:Property DTS:Name="IncludeInDebugDump">2345</DTS:Property><DTS:VariableValue DTS:DataType="8">truncate table ledger.fusion_fx_rates_processstaging</DTS:VariableValue>
<DTS:Property DTS:Name="ObjectName">SQL_VariableSQL_ClearDownFusionFXRatesProcessstaging</DTS:Property>
<DTS:Property DTS:Name="DTSID">{71911B6D-A0F8-49E4-9F7C-769BAEB5E8F9}</DTS:Property>
<DTS:Property DTS:Name="Description"></DTS:Property>
<DTS:Property DTS:Name="CreationName"></DTS:Property></DTS:Variable>
对我来说,第一个奇怪的是,当我在控制流中打开任务,并按下“构建查询”按钮时,我得到“无法解析查询文本”错误。由于某种原因,语句中的截断词有“”,所以如果我删除它们,并按下“运行”按钮,它会提示输入数据库的密码并且成功(这表明OleDB连接没有问题)。然而,当我单击确定关闭菜单时,我再次得到“无法解析文本”错误,如果我回到之前的菜单,我再次在截断周围的“”(仅在该单词上,而不是在整个声明中。)
最后,当我运行解决方案时,我在输出中出现了这个错误:
“将结果提取到类型变量时发生错误 (DBTYPE_DATE)“。可能的失败原因:查询问题, “ResultSet”属性设置不正确,参数设置不正确, 或连接未正确建立。
在SQL任务编辑中没有定义结果集,显然我不是试图用truncate语句获取任何类型的结果,所以我想知道可能是什么问题?我正在使用BIDS 2008。
我已经尝试将SQLSourceType的属性从Variable更改为DirectInput,然后直接放入SQL语句,但它会产生相同的错误。
答案 0 :(得分:0)
似乎在SQL任务编辑器中配置了一个输入参数,我从未在第一时间确认,因为它是截断语句。
老实说,我不知道这些事情在Subversion上是如何以这种方式结束的,以及它们实际上是如何在生产中运行的......!