Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста в решении проблемы. Имеется таблица где есть 10 столбцов и 3 тысячи строк. Используя команду bcp, я экспортирую данные из таблицы в файл txt данные. Они попадают в него одной строкой. Используя разделить строки, ROWTERMINATOR ='\n', можно ли сделать так, чтобы например первые 7 столбцов были на 1 строке, а начиная с 8 столбца данные попадали на вторую строку, а с 3-й строки шла уже новая запись с таблицы sql в том же формате, т.е. 7 столбцов на 3 строке, 3 столбца на 4й и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 20:05 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Т.е. как сделать разделение строк в результирующем файле по названию столбца, но чтобы оставшиеся столбцы попадали на следующую строку. поле имеет тип данных varchar 100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 20:07 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Скармливайте bcp не таблицу, а запрос, который собирает все поля записи в одно текстовое со всеми нужными разделителями, переводами строк и прочей шелухой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 20:18 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Akina, а вы не могли бы привести пример селекта, где выводится результат в том формате, какой я описал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 20:49 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11можно ли сделать так, чтобы например первые 7 столбцов были на 1 строке, а начиная с 8 столбца данные попадали на вторую строкувопрос, а зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 20:49 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, нужно для одного проекта, по другому никак не решить. Возможно ли запросом на выборку в самом sql сделать такое? либо же создать временную таблицу куда будут копироваться строки в таком формате поле чего уже с помощью bcp сделать то, что мне нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 21:33 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
вас устроит если в файле будет вот так: p1;p2;p3;p4;p5 p6;p7;;;; p1;p2;p3;p4;p5 p6;p7;;;; здесь разделитель ; для наглядности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 21:53 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, да, это именно то, что мне нужно. столбец p5 имеет тип данных varchar(100). не могу понять как сделать, чтобы при экспорте в текстовый файл было именно такое представление. Выше посоветовали сделать именно выборку такую в sql сначала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 21:56 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11Дедушка, да, это именно то, что мне нужно. столбец p5 имеет тип данных varchar(100). не могу понять как сделать, чтобы при экспорте в текстовый файл было именно такое представление. Выше посоветовали сделать именно выборку такую в sql сначала. 2 раздельных текстовых файла, у которых будет одинаковое количество строк. И простой скрипт на powershell, который сделает третий файл, читая первую строку из первого файла, затем первую из второго, затем вторую из первого и вторую из второго и так далее. Кошерных примеров в гугле можно найти таки вагон и небольшую тележку. Нужно поступать как советские инженеры - максимально упрощать задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 21:58 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, для примера, у меня сейчас все идет в одну строку: p1p2...p7. Если р1 имеет varchar(4) а в таблице только 3 символа то в текстовом файле записывается 3 символа и один пробел. То же самое и с р5, у него в таблице 100 символов, но там в основном занято по 60-70, остальное пробелы в текстовом файле. И мне нужно чтобы после пробелов, после 100 символов остальное шло на следующую строку и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 21:59 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, гениально, спасибо большое. Попробую так, но мне кажется, что можно сделать это все и в sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:00 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, посмотрел материал по поводу объединения двух текстовых файлов, пишут что очень долго делает даже небольшие объемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:14 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11Andy_OLAP, посмотрел материал по поводу объединения двух текстовых файлов, пишут что очень долго делает даже небольшие объемы Попробуйте готовое решение . Думаю, скорость будет приемлимой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:17 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11, Только там в одну строку соединяют 2 строки, а Вам нужно с разделителем, чтобы тоже 2 строки получилось. Цикл отработает достаточно быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:18 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Так как столбец после которого нужно внести разделение имеет 10 и более пробелов возможно ли сделать разделение при помощи bcp, где разделителем выступают пробелы, как например((**\t**, end, !!!!!!!!!!, \t—\n и т. д.)), в этом случае я просто в bcp после запроса добавлю скобки в которых будут пробелы ( )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:22 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
как запасной вариант: Код: 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. далее выгрузка через bcp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:25 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 22:34 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, подскажите, тот запрос, что вы написали, он представляет матрицу(А1,В1,С1и т.д) в формате который мне нужен, но как сделать выборку в этом формате из селектра, где построчно выводится тысячи строк к примеру из 10 столбцов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 10:11 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, я, так понимаю, что нужно вместо матрицы добавить селект, но тогда ругается на несовместимость values, хотя в начале запроса я исправляю, как у меня в таблице, varchar и т.д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 10:31 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, или нужно делать весь этот запрос из нужного мне селекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 11:31 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11, @p - это ваша таблица (замените @p на dbo.MyTable, например) в t1 поля p1, p2, p3 это поля вашей таблицы которые "должны быть в первой строке файла", а в t2 поля p4, p5 это оставшиеся поля вашей таблицы которые "должны быть во второй строке файла" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 11:53 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, при замене в 4х местах @р на имя таблицы, после дбо, в первом месте, подчеркивает точко, как некорректный синтаксес ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 12:26 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, а можно в этом запросе где нибудь вставить условие, либо же делать отдельно запрос с условием и от него уже этот запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 19:39 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Получайте нужные вам данные любым нужным вам запросом. Сохраняйте результат этого запроса во временную таблицу (#p, например). В приведённом выше коде убираете создание и заполнение таблицы @p (тестовая). В t1 и t2 заменяете @p на #p. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 19:57 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, спасибо, у меня все получилось, только один вопрос. Можно ли как то убрать столбец с номером, я понимаю что по нему идет сортировка, но он мне сильно мешается, есть вариант засунуть весь этот запрос в подзапрос и оттуда уже выбрать без столбца этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 20:34 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, или можно как-нибудь результаты этого запроса загнать во временную таблицу, а из нее выбрать без столбца с номерами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 19:54 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, Подскажите пожалуйста, я все сделал, все получилось, но выводится не вся таблица. вывод количества строк зависит от нулей в values, можно ли как то выводить всю таблицу не прописывая сотни нулей в values? помогите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 18:03 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11, таблица с номерами там для наглядности, её можно убрать Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 19:56 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, то есть конечный запрос будет выглядеть: declare @p table (p1 char(2), p2 char(2), p3 char(2), p4 char(2), p5 char(2)) *наполняю таблицу @p нужными мне данными* ; with t1 as ( select p1, p2, p3, rn + (rn - 1) as n from ( select p1, p2, p3, row_number()over(order by (select 1)) as rn from @p p )q ), t2 as ( select p4 as p1, p5 as p2, null as p3, rn + rn as n from ( select p4, p5, row_number()over(order by (select 1)) as rn from @p p )q ) select p1, p2, p3, n from t1 union all select p1, p2, p3, n from t2 order by n ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 20:10 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
на всякий случай, вот это Код: sql 1. не гарантирует, что строки вашей исходной таблицы будут пронумерованы одинаково для "первой части полей" и для "второй части". если у вас в вашей исходной таблице есть адекватный атрибут для сортировки используйте его Код: sql 1. либо если вы предварительно выгружаете данные во временную таблицу используйте автоинкрементное поле для получения порядкового номера строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 20:19 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11то есть конечный запрос будет выглядетьда, с учётом комментария выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 20:20 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, например у меня первое поле название организаций, если я сделаю сортировку по нему во временной таблице #p, то в конечном запросе будет по алфавиту и будет сначала первая строка с 4мя столбцами, потом 5 столбец во второй строке и т.д.. Не получится, что сначала будут все как бы первые строки с 1-4 столбец, после чего все 5е столбцы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 20:41 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
OlegEgorov11, хотя, если по алфавиту сортировать для названий, как раз так и получится, последний столбец не пронумерован же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 20:43 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
Дедушка, все работает как надо, но когда я пытаюсь добавить результат запроса в другую временную таблицу, чтобы из нее выбрать уже без номера, то начинается что-то непонятное, так номер идет по порядку, но где то с 246 начиная, после него вставляется 277, потом опять по порядку 247, 248 и т.д., а где был 277 там просто 275,276, 278, 279 и т.д. по всей таблице. В чем может быть проблема? declare @v table (v1 char(2), v2 char(2), v3 char(2), v4 char(2) ) declare @p table (p1 char(2), p2 char(2), p3 char(2), p4 char(2), p5 char(2)) *наполняю таблицу @p нужными мне данными* ; with t1 as ( select p1, p2, p3, rn + (rn - 1) as n from ( select p1, p2, p3, row_number()over(order by (select 1)) as rn from @p p )q ), t2 as ( select p4 as p1, p5 as p2, null as p3, rn + rn as n from ( select p4, p5, row_number()over(order by (select 1)) as rn from @p p )q ) insert into @v select p1, p2, p3, n from t1 union all select p1, p2, p3, n from t2 order by n ; select v1, v2, v3 from @v ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:15 |
|
||
|
Экспорт из таблицы sql в текстовый файл.
|
|||
|---|---|---|---|
|
#18+
тут: 21341033 вам предложили более "элегантное" решение, используйте лучше его. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:36 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1689920]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 421ms |

| 0 / 0 |
