sqlcmd: согласование -W и -Y - PullRequest
2 голосов
/ 24 мая 2011

У меня есть автоматизированный пакетный процесс, который использует sqlcmd для извлечения данных из базы данных и вывода их в текстовый файл.Многие поля в этой базе данных имеют тип varchar(max), Sqlcmd ограничивает эти поля 256 символами, если я не добавлю что-то вроде -y 0 к флагам в вызове sqlcmd.

Это дает мне полный текст для полей большего размерачем 256 символов, но это также добавляет много пробелов;поля дополняются, чтобы сделать каждое поле настолько большим, насколько это возможно, в соответствии с его типом данных, по сути, давая мне огромные файлы с большим количеством отступов и потерянного пространства.

Я мог бы исправить это, добавив -W кмои флаги sqlcmd, но это выдает ошибку, в которой говорится, что -W и -y несовместимы.

Кто-нибудь имел эту проблему раньше?Мысли о том, как это решить?

Ответы [ 2 ]

0 голосов
/ 11 июня 2014

У меня была эта проблема при создании файла CSV с SQLCMD, и я решил ее, обманув SQLCMD.Вместо того, чтобы возвращать несколько полей и позволять SQLCMD ставить запятую в качестве разделителя, я просто объединяю все поля, вставляя в них запятые.Я знаю, что это уродливый обходной путь, но это решило мою проблему.Надеюсь, что это может помочь кому-то еще.

0 голосов
/ 24 мая 2011

Из этой нити есть предположение, что указание разделителя столбцов с помощью -s может обрезать данные, как если бы оно не было указано, данные выходят с фиксированной шириной.

Если этоне работает, вы пытались RTRIM(LTRIM(ColumnName)) в вашем SELECT запросе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...