我有一个旧的PostgreSQL数据库源(ODBC),我正尝试使用SSIS迁移到新的SQL Server模式。我收到警告说:
强制执行“逐行”读取方法,因为该表具有LOB列。列的内容是LOB
问题是,该列中的任何一个都不必真正是LOB。有一些是TEXT类型,但可以很容易地放入varchar(max)中。但是,甚至更陌生的人,大多数已经是 varchars,但是似乎将varchar(128)上的所有内容都视为是LOB(在预先的属性中,数据类型为DT_NTEXT)。
我事件尝试执行一条手动SQL命令,其中我在select语句中将每种字符串类型显式转换为适当长度的varchar,并且在ODBC源中仍将它们设置为DT_NTEXT。
我不是DBA,所以我做的事情很愚蠢是完全有可能的。我只想知道确保类型最终成为varchars的最佳方法,这样我就可以批量提取。有任何想法吗?
如果有问题,我将在Visual Studio 2013中使用SSIS-BI 2014。
varchar(max)
,简而言之,我认为出于SSIS的目的,列数据可以适合最大varchar大小(约为4000)。我实际上并没有投东西varchar(max)
; 不过,varchar(4000)
为了安全起见,我确实将一些列投射到。