Копирование поля varchar (max) в пакете DTS - PullRequest
0 голосов
/ 14 декабря 2010

Я использую DTS для экспорта данных в текстовый файл.но некоторые поля имеют тип varchar (max) и максимальный размер, который я могу указать, равен varchar (8000).Следовательно, текст обрезается, как я могу избежать этого.

Ответы [ 2 ]

1 голос
/ 31 января 2013

Я не уверен, но у меня есть несколько логических путей:

1) либо вам нужно add new column, скажем, col1 и col2. Затем примените запрос «подстрока» к вашим данным, разделите данные на две (или более) части в соответствии с вашими требованиями. Затем сохраните первую часть в col1, вторую в col2 ... и так далее.

2) вам нужно add new row с вышеуказанной логикой, где строка 1 хранит первую часть, строка 2 - вторая часть и так далее.

Другого пути нет.

Хотя оба пути будут работать, но я настоятельно рекомендую вам пойти с 1-го пути.

**

У меня есть для вас третье решение, оно будет работать> ** Вы можете объявить **nVARCHAR(MAX)** вместо nVARCHAR (MAX)

вот вам пример :::

ОБЪЯВИТЬ @ String nVARCHAR (МАКС.) ОБЪЯВИТЬ @i INT SELECT @i = 10000, @ String = ''

WHILE @i> 0 НАЧАТЬ SELECT @String = @String + 'A' SET @i = @i - 1 END

ВЫБРАТЬ ЛЕН (@String) как длина

Выход: длина ------- 10000

(затронут 1 ряд)

Оператор LEN возвращает 10000 и доказывает, что varchar (max) может хранить более 8000 символов.

0 голосов
/ 15 декабря 2010

Я бы попытался преобразовать его в текстовый столбец.Текстовый столбец может содержать до 2147483647 байт двоичных данных.

Спасибо, Андрей

...