powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Быстрый алгоритм для экспорта таблицы SQL в CSV
20 сообщений из 20, страница 1 из 1
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949371
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Мне нужно сделать экспорт таблиц из SQL-SERVERA в СSV
Пока таблицы были небольшие , то мой алгоритм перевода из VB работал достаточно быстро
(Я считывал построчно записи и записывал в ASCII файл)
Сейчас же таблицы будут больше 300000 записей и это очень много времени займет
Конечно я могу сделать этот и через сам SQL-SERVER (там алгоритм работает почти мнгновенно)
Но мне это нужно делать из программы по таймеру по несколько раз в день .
Может кто-то подскажет ,как сделать алгоритм быстрый (подобно как из менеджера SQL-SERVERA сейчас работает)
Cпасибо
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladi67Конечно я могу сделать этот и через сам SQL-SERVER
Но мне это нужно делать из программы по таймеру по несколько раз в день .а почему не сделать это средствами MSSQL по ЕГО таймеру?
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949381
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proа почему не сделать это средствами MSSQL по ЕГО таймеру?
Я об этом даже не подумал
Значит есть возможность так настроить там со всеми опциями ?. Я посмотрю,как это сделать .
Cпасибо
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949383
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть три раза в день каждую вторую среду сентября )
Там развитый шедулер.
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949434
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все-таки я до конца не понял
Ведь шедулер - это программа с выбором времени ( когда , в какое время запустить и закончить программу)
Я посмотрел - там вроде можно написаמть запрос (select)
Но ведь мне нужно конкретно запустить импорт данных с таблицы в формат CSV -
с параметрами нужными -
color delimeter
row delimeter
locale
unicode
Это ведь надо какой -то скрипт написать и запустить ?. Или что-то я не "догоняю"
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949435
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это называется DTS-пакет или что-то в этом роде. То есть можно запустить мастера экспорта, указать все настройки, а потом сохранить этот пакет и навесить на него шедулер. Более подробно объяснить не смогу и логичнее на эту тему задать вопросы в соответствующей ветке форума (не забыв указать версию SQL-сервера)
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949442
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladi67, кроме всего прочего, вы (при наличии соответствующих прав на сервере) можете начать с того, что:-
- клиентским приложением получаете данные через ODBC-драйвер; запускаете ХП на сервере/заливаете их сначала на сервер и запускаете (как вариант - делаете запросы с клиента) - естественно, при наличии прав на подключение...
- при запуске на сервере (из конца-то в конец, изучите, наконец, scheduler) - у вас будет не ИМПОРТ, а ЭКСПОРТ данных; пускай сервер экпортирует всё то, что вам нужно, и в нужное место, и в нужных форматах... - а вы просто будете забирать данные.
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949503
bussy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladi67,
А еще можно просто и быстро с помощью bcp.exe
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949544
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bussyvladi67,
А еще можно просто и быстро с помощью bcp.exeНо придется дополнительно потрудиться над шаблонами экспорта... Иногда проще настрадать код с явными преобразованиями, чем INI для BCP...
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949562
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
Разбираюсь сейчас с утилитой BCP
Спросил на подфоруме SQL
Мне например надо разделитель между полями при экспорте заменить на ","(запятая в кавычках) Не знаю пока как сделать.
И вообще вцелом экспорт идет , но что-то не так...
Местами путаются в некоторых записях поля(то ли это от разделителя -запятая)-
(то-ли из-за того что может быть NULL иногда)
Разбираюсь сейчас.
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949599
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladi67,
чтобы долго не думать - можно поступать проще

Экспортировать средствами MSSQL в формате, предлагаемом им же.
А затем - парсить файл, заменяя всё "неудобоваримое" на нужное. Вплоть до того, что парсинг может осуществляться средствами самой ОС.
Ну а потом - импортировать в ту версию Офиса, для которй вы и подготовили текстовик.
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949785
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM vladi67,
чтобы долго не думать - можно поступать проще

Экспортировать средствами MSSQL в формате, предлагаемом им же.
А затем - парсить файл, заменяя всё "неудобоваримое" на нужное. Вплоть до того, что парсинг может осуществляться средствами самой ОС.
Ну а потом - импортировать в ту версию Офиса, для которй вы и подготовили текстовик.
Видимо так придется. Тут например оказывается разделитель в середине запятая , а по бокам двойные кавычки не идет в bpc
( то есть эспорт есть , но игнорируются кавычки и пишутся только запятая как разделитель)
А у меня в некоторых полях уже сидит запятая - и поэтому поля после экспорта пререпутаны
И еше команда BPC ругается на replace при запросе (я хотел эту проблему с запятой убрать)
Сейчас придется вначале создать временную таблицу (положить туда записи в полях без запятой) и только потом уже делать
экспорт. А как лучше потом открыть текстовый файл в конце и заменить символы с разделителем запятая на кавычки + запятая ?
Файл то не маленький будет ...
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949862
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форуме SQL мне подсказали как вставить данный разделитель
Код: sql
1.
","


А заголовок видимо придется добавлять с помощью UNION
Всем спасибо
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949889
bussy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladi67,
с UNION не получится если только не все поля в запросе типа CHAR
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37949951
bussy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladi67,

А что мешает запустить master..xp_cmdshell три раза?
1) выгрузить заголовки столбцов
2) выгрузить данные
3) "склеить" 1й и 2й файлы?

по п.1: если у Вас какой-то собственный запрос, то какие в нем поля и в каком порядке они следуют Вы знаете. Если это просто выгрузка всего содержимого ОДНОЙ таблицы, то названия полей можно вытащить T-SQL запросом, дальше как обычно.
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37950527
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bussyvladi67,

А что мешает запустить master..xp_cmdshell три раза?
1) выгрузить заголовки столбцов
2) выгрузить данные
3) "склеить" 1й и 2й файлы?

по п.1: если у Вас какой-то собственный запрос, то какие в нем поля и в каком порядке они следуют Вы знаете. Если это просто выгрузка всего содержимого ОДНОЙ таблицы, то названия полей можно вытащить T-SQL запросом, дальше как обычно.

bussy
А как склеить эти 2 полученных файла ?
Что-то я замкнул
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37950566
bussy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladi67,
copy 1.csv + 2.csv 3.csv
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37950880
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bussyvladi67,
А еще можно просто и быстро с помощью bcp.exe
а если версия позволяет, то sqlcmd
кстати, она позволяет и заголовки столбцов выводить
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37951472
vladi67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еше одна засада
Нужно вывести в utf-8 , а bcp не делает это,
как я понял в принципе
Не знаю что и делать...
...
Рейтинг: 0 / 0
Быстрый алгоритм для экспорта таблицы SQL в CSV
    #37951950
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladi67Еше одна засада
Нужно вывести в utf-8 , а bcp не делает это,
как я понял в принципе
Не знаю что и делать...

поторюсь, используйте SqlCmd - это аналог BCP, который появился с MS SQL 2005, но более продвинутый
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Быстрый алгоритм для экспорта таблицы SQL в CSV
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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