powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Экспорт из таблицы sql в текстовый файл.
25 сообщений из 36, страница 1 из 2
Экспорт из таблицы sql в текстовый файл.
    #39628107
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста в решении проблемы. Имеется таблица где есть 10 столбцов и 3 тысячи строк. Используя команду bcp, я экспортирую данные из таблицы в файл txt данные. Они попадают в него одной строкой. Используя разделить строки, ROWTERMINATOR ='\n', можно ли сделать так, чтобы например первые 7 столбцов были на 1 строке, а начиная с 8 столбца данные попадали на вторую строку, а с 3-й строки шла уже новая запись с таблицы sql в том же формате, т.е. 7 столбцов на 3 строке, 3 столбца на 4й и т.д.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628108
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. как сделать разделение строк в результирующем файле по названию столбца, но чтобы оставшиеся столбцы попадали на следующую строку. поле имеет тип данных varchar 100
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628111
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скармливайте bcp не таблицу, а запрос, который собирает все поля записи в одно текстовое со всеми нужными разделителями, переводами строк и прочей шелухой.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628118
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
а вы не могли бы привести пример селекта, где выводится результат в том формате, какой я описал?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628120
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegEgorov11можно ли сделать так, чтобы например первые 7 столбцов были на 1 строке, а начиная с 8 столбца данные попадали на вторую строкувопрос, а зачем?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628134
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, нужно для одного проекта, по другому никак не решить. Возможно ли запросом на выборку в самом sql сделать такое? либо же создать временную таблицу куда будут копироваться строки в таком формате поле чего уже с помощью bcp сделать то, что мне нужно?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628142
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вас устроит если в файле будет вот так:

p1;p2;p3;p4;p5
p6;p7;;;;
p1;p2;p3;p4;p5
p6;p7;;;;

здесь разделитель ; для наглядности
?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628144
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, да, это именно то, что мне нужно. столбец p5 имеет тип данных varchar(100). не могу понять как сделать, чтобы при экспорте в текстовый файл было именно такое представление. Выше посоветовали сделать именно выборку такую в sql сначала.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628145
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegEgorov11Дедушка, да, это именно то, что мне нужно. столбец p5 имеет тип данных varchar(100). не могу понять как сделать, чтобы при экспорте в текстовый файл было именно такое представление. Выше посоветовали сделать именно выборку такую в sql сначала.
2 раздельных текстовых файла, у которых будет одинаковое количество строк. И простой скрипт на powershell, который сделает третий файл, читая первую строку из первого файла, затем первую из второго, затем вторую из первого и вторую из второго и так далее. Кошерных примеров в гугле можно найти таки вагон и небольшую тележку.

Нужно поступать как советские инженеры - максимально упрощать задачу.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628146
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, для примера, у меня сейчас все идет в одну строку:
p1p2...p7.
Если р1 имеет varchar(4) а в таблице только 3 символа то в текстовом файле записывается 3 символа и один пробел.
То же самое и с р5, у него в таблице 100 символов, но там в основном занято по 60-70, остальное пробелы в текстовом файле. И мне нужно чтобы после пробелов, после 100 символов остальное шло на следующую строку и т.д.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628147
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP, гениально, спасибо большое. Попробую так, но мне кажется, что можно сделать это все и в sql.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628154
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP, посмотрел материал по поводу объединения двух текстовых файлов, пишут что очень долго делает даже небольшие объемы
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628159
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegEgorov11Andy_OLAP, посмотрел материал по поводу объединения двух текстовых файлов, пишут что очень долго делает даже небольшие объемы
Попробуйте готовое решение . Думаю, скорость будет приемлимой.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628160
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegEgorov11,

Только там в одну строку соединяют 2 строки, а Вам нужно с разделителем, чтобы тоже 2 строки получилось. Цикл отработает достаточно быстро.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628161
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как столбец после которого нужно внести разделение имеет 10 и более пробелов возможно ли сделать разделение при помощи bcp, где разделителем выступают пробелы, как например((**\t**, end, !!!!!!!!!!, \t—\n и т. д.)), в этом случае я просто в bcp после запроса добавлю скобки в которых будут пробелы ( )?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628162
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как запасной вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
declare @t table (i int)
declare @p table (p1 char(2), p2 char(2), p3 char(2), p4 char(2), p5 char(2))

insert @t (i)
select
	row_number()over(order by (select 1)) - 1
from
	(values (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t1(i)
	cross join (values (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t2(i)

insert @p (p1, p2, p3, p4, p5)
values
	('A1', 'B1', 'C1', 'D1', 'E1'),
	('A2', 'B2', 'C2', 'D2', 'E2'),
	('A3', 'B3', 'C3', 'D3', 'E3')

;
with
t1 as
	(
	select
	p1, p2, p3, rn + i as n
	from
	(
	select
	p1, p2, p3, row_number()over(order by (select 1)) as rn
	from
	@p p
	)q
	inner join @t t on t.i = q.rn - 1
	),
t2 as
	(
	select
	p4 as p1, p5 as p2, null as p3, rn + i as n
	from
	(
	select
	p4, p5, row_number()over(order by (select 1)) as rn
	from
	@p p
	)q
	inner join @t t on t.i = q.rn
	)

select
	p1, p2, p3, n
from
	t1
union all
select
	p1, p2, p3, n
from
	t2
order by
	n

далее выгрузка через bcp
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628163
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, спасибо))
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628275
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, подскажите, тот запрос, что вы написали, он представляет матрицу(А1,В1,С1и т.д) в формате который мне нужен, но как сделать выборку в этом формате из селектра, где построчно выводится тысячи строк к примеру из 10 столбцов?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628279
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, я, так понимаю, что нужно вместо матрицы добавить селект, но тогда ругается на несовместимость values, хотя в начале запроса я исправляю, как у меня в таблице, varchar и т.д
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628303
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, или нужно делать весь этот запрос из нужного мне селекта?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628313
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegEgorov11,

@p - это ваша таблица (замените @p на dbo.MyTable, например)
в t1 поля p1, p2, p3 это поля вашей таблицы которые "должны быть в первой строке файла",
а в t2 поля p4, p5 это оставшиеся поля вашей таблицы которые "должны быть во второй строке файла"
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628332
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, при замене в 4х местах @р на имя таблицы, после дбо, в первом месте, подчеркивает точко, как некорректный синтаксес
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628710
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, а можно в этом запросе где нибудь вставить условие, либо же делать отдельно запрос с условием и от него уже этот запрос?
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39628711
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получайте нужные вам данные любым нужным вам запросом.
Сохраняйте результат этого запроса во временную таблицу (#p, например).
В приведённом выше коде убираете создание и заполнение таблицы @p (тестовая).
В t1 и t2 заменяете @p на #p.
...
Рейтинг: 0 / 0
Экспорт из таблицы sql в текстовый файл.
    #39629469
OlegEgorov11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка, спасибо, у меня все получилось, только один вопрос. Можно ли как то убрать столбец с номером, я понимаю что по нему идет сортировка, но он мне сильно мешается, есть вариант засунуть весь этот запрос в подзапрос и оттуда уже выбрать без столбца этого?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Экспорт из таблицы sql в текстовый файл.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]