Как создать вывод с фиксированной шириной с помощью sqlcmd - PullRequest
0 голосов
/ 19 сентября 2018

Следующее выполняется в нашей среде SQL 2008 R2, и все работает хорошо.Поставщик выполняет на SQL Server 2012 и форматирование изменений.

Например, простой выбор

Select '1',cast(RIGHT(replace(convert(varchar,[EMPL_EARNINGS].[PAY_PD_END_DT],112),'-',''),6) as CHAR(6)) 

Я не могу использовать -W, потому что некоторые поля заполнены пробелами.

Я выбираю 3 разных поля даты с одним и тем же оператором.
Одно правильное значение шириной 6 символов, другое - 8 и еще одно - 9.

Вызов пакетного файла: sqlcmd -S ServerName -i "c:\query\myquery.sql" -o "v:\Temp\myouput.dat" -h -1 -s"" -d"DBname".

1 Ответ

0 голосов
/ 20 сентября 2018

Обнаружено, что ширина столбца соответствует ширине имен столбца, хотя я использовал -h-1.Не уверен, почему это работает в нашей версии, но не вендоров.

Быстрое исправление заключалось в сокращении всех имен столбцов до <= желаемой ширины столбца. </p>

Хотите узнать РЕАЛЬНОЕ исправление?

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