复制DTS包中的varchar(max)字段

时间:2010-12-14 07:57:33

标签: sql dts

我正在使用DTS将数据导出到文本文件。但有些字段的类型为varchar(max),我可以指定的最大大小为varchar(8000)。因此,文本被截断,我怎么能避免这种情况。

2 个答案:

答案 0 :(得分:1)

我不确定,但我有一些合乎逻辑的方法:

1)你必须要add new column,比如col1& COL2。然后根据您的要求,对您的数据应用“substring”查询,将零件数据应用于两个(或更多)部分。然后将第一部分存储在col1中,第二部分存储在col2 ... ans等等。

2)你必须add new row,具有上述逻辑,其中row1存储第一部分,row2存储第二部分,依此类推。

没有别的办法。

虽然两种方式都有效,但我强烈建议你应该采用第一种方式。

**

  

我有第三个解决方案,它会工作>   **   您可以声明**nVARCHAR(MAX)**而不是nVARCHAR(MAX)

这是你的一个例子:::

DECLARE @String nVARCHAR(MAX) DECLARE @i INT SELECT @i = 10000,@ String =''

WHILE @ i> 0 开始 SELECT @String = @String +'A' SET @i = @i - 1 END

选择LEN(@String)作为长度

输出: 长度 ------- 10000

(1行受影响)

LEN语句返回10000,证明varchar(max)可以存储超过8000个字符。

答案 1 :(得分:0)

我会尝试将其转换为Text列。文本列最多可包含2147483647个字节的二进制数据。

谢谢,安德鲁