0
执行我的SSIS包时出现错误,指出Incorrect syntax near ')'.
。该错误是由DFT中的脚本转换组件引发的。从我可以告诉它正在抛出的sqlReader = sqlCmd.ExecuteReader()
行。我已经看了好几天了,似乎无法弄清楚是什么导致了错误。我已经在下面包含了脚本组件的内容。有人有主意吗?使用ADO.NET的SSIS脚本转换错误
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports System.Data.SqlClient
Public Class ScriptMain
Inherits UserComponent
Dim connMgr As IDTSConnectionManager90
Dim sqlConn As SqlConnection
Dim sqlCmd As SqlCommand
Dim sqlParam As SqlParameter
Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
connMgr = Me.Connections.connTalisma
sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)
End Sub
Public Overrides Sub PreExecute()
sqlCmd = New SqlCommand("SELECT Name FROM dbo.Category WHERE CatID = @catid)", sqlConn)
sqlParam = New SqlParameter("@catid", SqlDbType.Int)
sqlCmd.Parameters.Add(sqlParam)
End Sub
Public Overrides Sub ReleaseConnections()
connMgr.ReleaseConnection(sqlConn)
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim sqlReader As SqlDataReader
Dim delimitedField As String = Row.FinalCallReason
Dim delimiter As String = ";"
Dim tempField As String
If Not (String.IsNullOrEmpty(delimitedField)) Then
Dim DelimitedListArray() As String = delimitedField.Split(New String() {delimiter}, StringSplitOptions.RemoveEmptyEntries)
For Each item As String In DelimitedListArray
sqlCmd.Parameters("@catid").Value = CInt(item)
MsgBox(item)
Try
sqlReader = sqlCmd.ExecuteReader()
tempField = tempField + ";" + sqlReader.GetString(0)
Catch e As Exception
MsgBox("Error: " + e.Message)
End Try
Next
End If
Row.FinalCallReason = tempField
End Sub
End Class
我知道它必须是我忽略的一些愚蠢的东西。只需要另一双眼睛。谢谢! – bokoxev