Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS—传递到存储过程时截断/转换的变量_Sql_Sql Server_Stored Procedures_Ssis - Fatal编程技术网

Sql SSIS—传递到存储过程时截断/转换的变量

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

我正在开发一个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 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,即固定长度。