Sql SSIS—传递到存储过程时截断/转换的变量
我正在开发一个SSIS包,它从CSV文件中获取数据,其中有一列,每行的数据作为参数传递给存储过程。每行是9个数字和1个字母,即10个字符的字符串 包的结构如下所示:Sql SSIS—传递到存储过程时截断/转换的变量,sql,sql-server,stored-procedures,ssis,Sql,Sql Server,Stored Procedures,Ssis,我正在开发一个SSIS包,它从CSV文件中获取数据,其中有一列,每行的数据作为参数传递给存储过程。每行是9个数字和1个字母,即10个字符的字符串 包的结构如下所示: For loop that iterates over files in a given directory. Data Flow ( Flat File Source getting CSV file -> Recordset Destination ) -> For loop that iterates over e
For loop that iterates over files in a given directory.
Data Flow ( Flat File Source getting CSV file -> Recordset Destination )
-> For loop that iterates over each record.
Execute SQL Task calls stored procedure with the value from each record as a parameter.
问题是:
根据存储过程中的调试代码,将传递以下内容:
实际数据:11111111 x,222222 y,333333 z。
收到的:1,2,3
我添加了一些断点并观察了用于存储字符串的变量,我可以看到它在每次迭代期间的值是正确的,即在存储过程调用之前和之后的完整10字符字符串
基于一些谷歌搜索,这让我认为在数据从变量传递到执行SQL任务和调用之间会发生某种类型转换
此链接表示任务有时会强制转换数据:
我已经排除了类型/长度的胡说八道,监视的变量证实了这一点。我也试着加入声明本身,但没有效果
有人能证实我的假设和/或提供解决方案吗?即使在以下情况下也可能发生: 检查源平面文件是否为UNICODE文件 及
设置您的目标列定义为nvarcharmax。您在执行SQL任务时使用哪种类型的连接管理器?OLE DB?“执行SQL”任务的“参数”选项卡中的参数类型是什么?还请提供您的SQL语句以调用SPSorry、ODBC。语句:{call NameOf_StoredProcedure}执行SQL任务的参数选项卡中的参数类型是什么?一个参数:Type:SQL_VARCHAR参数名称:1参数大小:10我也尝试过使用SQL_CHAR,即固定长度。