我们正在进行SQL Server 2008 R2到2016升级。我们正在升级SSIS包。在这些包中,我们有一个脚本组件,可以将计数保存在变量中:#Records:SourceinSource
在visual basic 2008版本中,我们使用这段代码将计数转换为NVARCHAR值。
Dim MyRecordsInSource As String
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
MyRecordsInSource = Row.CASTCOUNT1ASNVARCHAR28
End Sub
Public Overrides Sub PostExecute()
MyBase.PostExecute()
Me.Variables.varRecordsInSource = MyRecordsInSource
End Sub
但是在我们在2015版本中执行包之后,代码被转换为以下内容并给出转换错误。请注意,CASTCOUNT1ASNVARCHAR28已由visual studio或vb更改为ToString
Dim MyRecordsInSource As String
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
MyRecordsInSource = Row.ToString()
End Sub
Public Overrides Sub PostExecute()
MyBase.PostExecute()
Me.Variables.varRecordsInSource = MyRecordsInSource
End Sub
有没有人认识到这个问题,或者有没有办法在不使用ToString函数的情况下转换变量
我的日志记录中出现以下错误。当我用旧代码CASTCOUNT1ASNVARCHAR28替换toString时,所有框都检查为绿色。使用Tostring(),我在执行SQL任务中遇到了错误:
[Execute SQL Task] Error: Executing the query "insert into etl.process_stagingin_log (BatchNr
, ..." failed with the following error: "Conversion failed when converting the varchar value 'SC_64e4ca4597264faf93443f856b4b31a2.Input0Buffer' to data type int.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
SC_64e4ca4597264faf93443f856b4b31a2是vb脚本的名称。而inpt0Buffer是转换函数
的部分