Разделите выходные данные SQL Server, используя пользовательскую строку - PullRequest
0 голосов
/ 19 апреля 2011

Я выполняю задание в MS SQL Server, которое выводит текстовый файл с пробелами между столбцами. То, что я хотел бы сделать, это указать определенную последовательность символов между каждым столбцом в качестве разделителя.

Например, я бы хотел, чтобы результат выглядел следующим образом:

Apple%%%red%%%fruit  
banana%%%yellow%%%fruit  
onion%%%White%%%veggie

В этом примере %%% является разделителем.

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Я предполагаю, что вы ищете T-SQL-эквивалент команды Oracle P / SQL "set colsep".Эта команда позволяет вам изменить разделитель вывода.Например, чтобы сделать точку с запятой, вы должны вызвать:

set colsep ";"

Но в SQL Server ... я вижу способ сделать это.

Используйте утилиту "bcp", и вы можете указать разделитель и записать в свой файл.Это инструкции:

http://msdn.microsoft.com/en-us/library/ms162802.aspx

Посмотрите опцию -t, чтобы изменить разделитель.

1 голос
/ 19 апреля 2011

Предполагая, что вы используете выходной файл шага задания, а выходной файл в настоящее время структурирован примерно так:

---- --------
row1 somedata
row2 somedata

Вы можете просто объединить столбцы, используя '+', и задать процентв зависимости от обстоятельств.Таким образом, определение шага задания должно содержать:

select column1 + '%%%' + column2 from table1;

И вывод будет выглядеть так:

---------------
row1%%%somedata
row2%%%somedata

Это предполагает, что вы согласны с объединением каждой строки результатов в один столбец.Вам нужно будет привести / преобразовать значения не символьных столбцов, чтобы это работало.

...