Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.09.2012, 11:43
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Добрый день Мне нужно сделать экспорт таблиц из SQL-SERVERA в СSV Пока таблицы были небольшие , то мой алгоритм перевода из VB работал достаточно быстро (Я считывал построчно записи и записывал в ASCII файл) Сейчас же таблицы будут больше 300000 записей и это очень много времени займет Конечно я могу сделать этот и через сам SQL-SERVER (там алгоритм работает почти мнгновенно) Но мне это нужно делать из программы по таймеру по несколько раз в день . Может кто-то подскажет ,как сделать алгоритм быстрый (подобно как из менеджера SQL-SERVERA сейчас работает) Cпасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 11:48
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67Конечно я могу сделать этот и через сам SQL-SERVER Но мне это нужно делать из программы по таймеру по несколько раз в день .а почему не сделать это средствами MSSQL по ЕГО таймеру? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 12:02
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Shocker.Proа почему не сделать это средствами MSSQL по ЕГО таймеру? Я об этом даже не подумал Значит есть возможность так настроить там со всеми опциями ?. Я посмотрю,как это сделать . Cпасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 12:07
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Хоть три раза в день каждую вторую среду сентября ) Там развитый шедулер. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 14:26
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Все-таки я до конца не понял Ведь шедулер - это программа с выбором времени ( когда , в какое время запустить и закончить программу) Я посмотрел - там вроде можно написаמть запрос (select) Но ведь мне нужно конкретно запустить импорт данных с таблицы в формат CSV - с параметрами нужными - color delimeter row delimeter locale unicode Это ведь надо какой -то скрипт написать и запустить ?. Или что-то я не "догоняю" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 14:31
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Это называется DTS-пакет или что-то в этом роде. То есть можно запустить мастера экспорта, указать все настройки, а потом сохранить этот пакет и навесить на него шедулер. Более подробно объяснить не смогу и логичнее на эту тему задать вопросы в соответствующей ветке форума (не забыв указать версию SQL-сервера) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 14:52
|
|||
---|---|---|---|
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, кроме всего прочего, вы (при наличии соответствующих прав на сервере) можете начать с того, что:- - клиентским приложением получаете данные через ODBC-драйвер; запускаете ХП на сервере/заливаете их сначала на сервер и запускаете (как вариант - делаете запросы с клиента) - естественно, при наличии прав на подключение... - при запуске на сервере (из конца-то в конец, изучите, наконец, scheduler) - у вас будет не ИМПОРТ, а ЭКСПОРТ данных; пускай сервер экпортирует всё то, что вам нужно, и в нужное место, и в нужных форматах... - а вы просто будете забирать данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 18:19
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, А еще можно просто и быстро с помощью bcp.exe ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 19:39
|
|||
---|---|---|---|
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
bussyvladi67, А еще можно просто и быстро с помощью bcp.exeНо придется дополнительно потрудиться над шаблонами экспорта... Иногда проще настрадать код с явными преобразованиями, чем INI для BCP... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 20:09
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Спасибо Разбираюсь сейчас с утилитой BCP Спросил на подфоруме SQL Мне например надо разделитель между полями при экспорте заменить на ","(запятая в кавычках) Не знаю пока как сделать. И вообще вцелом экспорт идет , но что-то не так... Местами путаются в некоторых записях поля(то ли это от разделителя -запятая)- (то-ли из-за того что может быть NULL иногда) Разбираюсь сейчас. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.09.2012, 21:45
|
|||
---|---|---|---|
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, чтобы долго не думать - можно поступать проще Экспортировать средствами MSSQL в формате, предлагаемом им же. А затем - парсить файл, заменяя всё "неудобоваримое" на нужное. Вплоть до того, что парсинг может осуществляться средствами самой ОС. Ну а потом - импортировать в ту версию Офиса, для которй вы и подготовили текстовик. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.09.2012, 10:17
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
AndreTM vladi67, чтобы долго не думать - можно поступать проще Экспортировать средствами MSSQL в формате, предлагаемом им же. А затем - парсить файл, заменяя всё "неудобоваримое" на нужное. Вплоть до того, что парсинг может осуществляться средствами самой ОС. Ну а потом - импортировать в ту версию Офиса, для которй вы и подготовили текстовик. Видимо так придется. Тут например оказывается разделитель в середине запятая , а по бокам двойные кавычки не идет в bpc ( то есть эспорт есть , но игнорируются кавычки и пишутся только запятая как разделитель) А у меня в некоторых полях уже сидит запятая - и поэтому поля после экспорта пререпутаны И еше команда BPC ругается на replace при запросе (я хотел эту проблему с запятой убрать) Сейчас придется вначале создать временную таблицу (положить туда записи в полях без запятой) и только потом уже делать экспорт. А как лучше потом открыть текстовый файл в конце и заменить символы с разделителем запятая на кавычки + запятая ? Файл то не маленький будет ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.09.2012, 13:53
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
На форуме SQL мне подсказали как вставить данный разделитель Код: sql 1.
А заголовок видимо придется добавлять с помощью UNION Всем спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.09.2012, 14:47
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, с UNION не получится если только не все поля в запросе типа CHAR ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.09.2012, 15:51
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, А что мешает запустить master..xp_cmdshell три раза? 1) выгрузить заголовки столбцов 2) выгрузить данные 3) "склеить" 1й и 2й файлы? по п.1: если у Вас какой-то собственный запрос, то какие в нем поля и в каком порядке они следуют Вы знаете. Если это просто выгрузка всего содержимого ОДНОЙ таблицы, то названия полей можно вытащить T-SQL запросом, дальше как обычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.09.2012, 10:15
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
bussyvladi67, А что мешает запустить master..xp_cmdshell три раза? 1) выгрузить заголовки столбцов 2) выгрузить данные 3) "склеить" 1й и 2й файлы? по п.1: если у Вас какой-то собственный запрос, то какие в нем поля и в каком порядке они следуют Вы знаете. Если это просто выгрузка всего содержимого ОДНОЙ таблицы, то названия полей можно вытащить T-SQL запросом, дальше как обычно. bussy А как склеить эти 2 полученных файла ? Что-то я замкнул ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.09.2012, 10:34
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67, copy 1.csv + 2.csv 3.csv ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.09.2012, 13:43
|
|||
---|---|---|---|
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
bussyvladi67, А еще можно просто и быстро с помощью bcp.exe а если версия позволяет, то sqlcmd кстати, она позволяет и заголовки столбцов выводить ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.09.2012, 17:48
|
|||
---|---|---|---|
|
|||
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
Еше одна засада Нужно вывести в utf-8 , а bcp не делает это, как я понял в принципе Не знаю что и делать... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2012, 08:07
|
|||
---|---|---|---|
Быстрый алгоритм для экспорта таблицы SQL в CSV |
|||
#18+
vladi67Еше одна засада Нужно вывести в utf-8 , а bcp не делает это, как я понял в принципе Не знаю что и делать... поторюсь, используйте SqlCmd - это аналог BCP, который появился с MS SQL 2005, но более продвинутый ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2157455]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
198ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 280ms |
total: | 577ms |
0 / 0 |