Sql server 导致错误的nvarchar(最大值)
我正在尝试将数据从Oracle源加载到SQL Server数据库中。正在加载的列之一是连接的结果。有许多值的长度为6000或7000个字符。目标表已设置为Sql server 导致错误的nvarchar(最大值),sql-server,oracle,ssis,Sql Server,Oracle,Ssis,我正在尝试将数据从Oracle源加载到SQL Server数据库中。正在加载的列之一是连接的结果。有许多值的长度为6000或7000个字符。目标表已设置为nvarchar(max),因此我们不会遇到任何截断问题 但是,当SSIS包运行时,仍然无法指出结果字符串太长。我进入了SSIS中的高级编辑器,并显式地将其更改为DT_NTEXT unicode textstream。它仍然失败 请帮忙 如果没有其他方法,我将把值截断为4000个字符 我过去也遇到过同样的问题。不幸的是,由于驱动程序或SSI的内
nvarchar(max)
,因此我们不会遇到任何截断问题
但是,当SSIS包运行时,仍然无法指出结果字符串太长。我进入了SSIS中的高级编辑器,并显式地将其更改为DT_NTEXT unicode textstream
。它仍然失败
请帮忙
如果没有其他方法,我将把值截断为4000个字符 我过去也遇到过同样的问题。不幸的是,由于驱动程序或SSI的内部实现限制,无法解决此问题。基本上,Oracle方面的限制是8000个字符,它对应于4000个Unicode字符。转换为unicode发生在Oracle->SQL Server路径的某个地方,无法避免。即使双方的声明都很简单。我过去也遇到过同样的问题。不幸的是,由于驱动程序或SSI的内部实现限制,无法解决此问题。基本上,Oracle方面的限制是8000个字符,它对应于4000个Unicode字符。转换为unicode发生在Oracle->SQL Server路径的某个地方,无法避免。即使双方的声明都很简单。如果@Milan.Švec是正确的,那么你只需要跳出框框思考
- 你知道SSIS很挑剔
- Oracle可能没有正确的驱动程序
- 可以读入一个简单的文本/csv文件(DT_NTEXT)
- 说明正确的分隔符至关重要
- 使用分隔符确保您的数据正确地位于每列中。天知道当列被错误地推到错误的行/列时,脏数据会多么令人沮丧李>
- 否则,推到最终表格并跳过步骤4李>
当然,还有其他几种方法可以做到这一点,但csv是通用的,至少是简单明了的。避免使用EXCEL文件,因为在某些版本中,EXCEL文件往往有很多缺陷 如果@Milan.Švec是正确的,那么你只需要跳出框框思考
- 你知道SSIS很挑剔
- Oracle可能没有正确的驱动程序
- 可以读入一个简单的文本/csv文件(DT_NTEXT)
- 说明正确的分隔符至关重要
- 使用分隔符确保您的数据正确地位于每列中。天知道当列被错误地推到错误的行/列时,脏数据会多么令人沮丧李>
- 否则,推到最终表格并跳过步骤4李>
如何截断ssis包中的字符串。最简单的方法是在数据源的
SELECT
中的相应列上使用substr
函数。如何截断ssis包中的字符串。最简单的方法是在数据源的SELECT
中的相应列上使用substr
函数。