Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию / 25 сообщений из 31, страница 1 из 2
25.05.2020, 19:08
    #39961859
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Добрый день, сразу прошу меня понять, в mssql работаю редко, по крайней необходимости. Сейчас как никогда возникла такая необходимость. Собственно в чем сам вопрос. Существует представление, в нем собраны столбцы: Имя Значение, ДатаВремя.
Стоит задача выгружать данные из данного представления в файл Excel в автоматическом режиме, без открытия самого файла, т.е. подключение к источникам данных в Excel не подходит ввиду необходимости обновления данных. Но выгрузка должна осуществляться по условию, что ДатаВремя = 8:00 и 20:00 не смотря на дату. Как это правильно реализовать? Буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
25.05.2020, 19:59
    #39961873
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
выгружайте через BCP
https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15
в формате csv
...
Рейтинг: 0 / 0
25.05.2020, 20:12
    #39961875
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Нужно именно в excel ский файл, это возможно?
...
Рейтинг: 0 / 0
25.05.2020, 20:17
    #39961877
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
А как можно выбрать только те строки в которых время из столбца датавремя 25.05.2020 8:00 Равно 8:00 и 20:00 несмотря на дату?
...
Рейтинг: 0 / 0
25.05.2020, 21:21
    #39961887
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
>Нужно именно в excel ский файл, это возможно?
У вас есть два пути:
либо pull - с клиента джобом таки открыть Excel файл и макросом выкачать данные
либо push - с сервера открыть файл и вкачать данные либо перезаписать файл
Выбирайте любой

>А как можно выбрать только те строки в которых время из столбца датавремя 25.05.2020 8:00 Равно 8:00 и 20:00 несмотря на дату?
с помощью оператора where конечно

>несмотря на дату?
Код: sql
1.
select cast(getdate() As time),cast('08:00:00' as time),cast('20:00:00' as time)
...
Рейтинг: 0 / 0
26.05.2020, 06:52
    #39961984
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257, Благодарю, а можно поподробнее про метод push?
...
Рейтинг: 0 / 0
26.05.2020, 07:48
    #39961993
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
>а можно поподробнее про метод push?
Для начала надо установить oledb провайдер для Excel. гуглите Microsoft.ACE.OLEDB для вашей версии сервера.
После установки его можно будет увидеть в SSMS: сервер->server objects->linked servers->providers

Дальше либо создаете SSIS пакет для экспорта (например мастером экспорта), либо создаете linked server используя вышеуказанный провайдер.
Совсем не уверен, что вы сможете впихнуть туда что либо кроме чистых данных и заголовков столбцов типа форматирования, фильтров и тп, но вы попробуйте.
...
Рейтинг: 0 / 0
26.05.2020, 09:15
    #39962011
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

Если Вы про стандартные средства экспорта, то у меня так получается, но каждый раз необходимо запускать экспорт вручную. Возможно каким-то образом сохранить?
...
Рейтинг: 0 / 0
26.05.2020, 19:53
    #39962466
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Ilmurat
Нужно именно в excel ский файл, это возможно?

выгружаете в csv и запускаете скрипт, который откроет его в excel и сохранит как excel

А вообще непонятна задача - кто, когда, где, что. Все должно быть само.
...
Рейтинг: 0 / 0
26.05.2020, 20:07
    #39962477
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
> Возможно каким-то образом сохранить?
Разумеется возможно. Когда делаете экспорт, нажмите на кнопку - сохранить как SSIS package. Его (пакет) можно запускать из агента.
...
Рейтинг: 0 / 0
27.05.2020, 13:26
    #39962782
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

Сохраняю, но при повторном запуске файла *.dtsx ругается "Сбой выполнения запроса CREATE TABLE со следующей ошибкой, таблица уже существует. Возможная причина сбоя проблема с этим запросом, Свойство "ResultSet", установлено не правильно"

Если после каждого экспорта таблицу удалить, и запустить экспорт заново, то проблем не возникает.
...
Рейтинг: 0 / 0
27.05.2020, 13:30
    #39962786
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
PizzaPizza,Добрый день. Есть таблица которая заполняется значениями, автоматически каждую минуту. Необходимо выгружать в файл строки 2 раза в сутки в 8:00 и 20:00 значения ДатаТайм которых равно 8:00 и 20:00.
...
Рейтинг: 0 / 0
27.05.2020, 14:09
    #39962811
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

select cast(getdate() As time),cast('08:00:00' as time),cast('20:00:00' as time)

Попробовал так, как оказалось дал Вам не верную информацию.

Столбец TimeString тип данных char(26), само значение выглядит так 27.05.2020 10:11:14, хотелось бы в представление собрать только те строки в которых значение времени будет 27.05.2020 8:00:14 ну и 27.05.2020 20:00:14
...
Рейтинг: 0 / 0
27.05.2020, 17:00
    #39962943
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Ilmurat Сохраняю, но при повторном запуске файла *.dtsx ругается "Сбой выполнения запроса CREATE TABLE со следующей ошибкой, таблица уже существует.А вам что надо - то? Чтобы файл перезаписывала? Чтобы дописывала в конец?
Открывайте свой пакет Data tools и правьте свойства пакета.
И еще раз подумайте на предмет csv (самый первый ответ в топике)

Пробовали создать linked server?
Тогда вся обработка будет в чистом SQL.

Ilmurat Столбец TimeString тип данных char(26), само значение выглядит так 27.05.2020 10:11:14, хотелось бы в представление собрать только те строки в которых значение времени будет 27.05.2020 8:00:14 ну и 27.05.2020 20:00:14 Значит используйте текстовые функции
Код: sql
1.
2.
3.
declare @timestring_table table (timestring char(26));
insert into @timestring_table values ('27.05.2020 10:11:14'),('27.05.2020  8:00:14'),('27.05.2020 20:00:14');
select * from @timestring_table where SUBSTRING(timestring,12,5) in (' 8:00','20:00');
...
Рейтинг: 0 / 0
27.05.2020, 19:47
    #39963036
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Все равно непонятно. Если вам необходимо
Ilmurat
выгружать в файл строки 2 раза в сутки

то пусть сотрудник открывает студию и выгружает два раза в сутки в эксель. Это крайне не сложно, мягко говоря.

Опять же
Ilmurat
ДатаВремя = 8:00 и 20:00 не смотря на дату

Вам надо одну строку выгружать каждый раз, утром строку от 8 утра, а вечером от 8 вечера?

Вы сформулируйте задачу корректно и сразу станет понятнее.
...
Рейтинг: 0 / 0
28.05.2020, 09:01
    #39963175
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
PizzaPizza,

Нет, там не 2 строки, там грубо говоря 15 наименований они пишутся в сервер каждую минуту, мне выгружать в сутки 30 строк со значением 8:00 и 20:00 ну и равными этому времени значениями.

да, необходимо дописывать файл.

По поводу csv пробовал, так и не разобрался(((
...
Рейтинг: 0 / 0
28.05.2020, 09:07
    #39963178
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
PizzaPizza,

Да, только там будет 15 строк в 8 утра и 15 строк в 8 вечера, нужно, чтоб файл дописывался в фоновом режиме.
...
Рейтинг: 0 / 0
28.05.2020, 09:09
    #39963182
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

У Вас почта указанная в профиле актуальна? Можно писать туда?
...
Рейтинг: 0 / 0
28.05.2020, 09:25
    #39963189
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
PizzaPizza,

В таблице содержатся следующие значения:

value VarName VarValue TimeString
16960575 75 SP-12GVO 28834 27.05.2020 10:11:14
16960575 75 SP-12GVO 28837 27.05.2020 12:50:28
16960575 75 SP-12GVO 28837 27.05.2020 12:51:33
16960575 75 SP-12GVO 28837 27.05.2020 12:52:37
16960575 75 SP-12GVO 28837 27.05.2020 12:53:40
16960575 75 SP-12GVO 28837 27.05.2020 12:54:43
16960575 75 SP-12GVO 28837 27.05.2020 12:55:45
39807731 31 PGP-2 621 27.05.2020 10:11:14
39807731 31 PGP-2 621 27.05.2020 12:50:28
39807731 31 PGP-2 621 27.05.2020 12:51:33
39807731 31 PGP-2 621 27.05.2020 12:52:37
39807731 31 PGP-2 621 27.05.2020 12:53:40
39807731 31 PGP-2 621 27.05.2020 12:54:43
39807731 31 PGP-2 621 27.05.2020 12:55:45
39807705 05 Drobilka 2111 27.05.2020 10:11:14
39807705 05 Drobilka 2111 27.05.2020 12:50:28
39807705 05 Drobilka 2111 27.05.2020 12:51:33
39807705 05 Drobilka 2111 27.05.2020 12:52:37
39807705 05 Drobilka 2111 27.05.2020 12:53:40
39807705 05 Drobilka 2111 27.05.2020 12:54:43
39807705 05 Drobilka 2111 27.05.2020 12:55:45
16961352 52 SP-2GVO 41976 27.05.2020 10:11:14
16961352 52 SP-2GVO 41980 27.05.2020 12:50:28
16961352 52 SP-2GVO 41980 27.05.2020 12:51:33
16961352 52 SP-2GVO 41980 27.05.2020 12:52:37
16961352 52 SP-2GVO 41980 27.05.2020 12:53:40
16961352 52 SP-2GVO 41980 27.05.2020 12:54:43
16961352 52 SP-2GVO 41980 27.05.2020 12:55:45
16961564 64 Melnica 1 36181 27.05.2020 10:11:14
16961564 64 Melnica 1 36181 27.05.2020 12:50:28
16961564 64 Melnica 1 36181 27.05.2020 12:51:33

и.т.д. В представление нужно собрать только те, время которых равно 8:00 и 20:00 и выгружать данные из этого представления в файл, не открывая сам файл.
...
Рейтинг: 0 / 0
28.05.2020, 17:22
    #39963493
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Ilmurat У Вас почта указанная в профиле актуальна? Можно писать туда? Можно, но не нужно.

Я предложил вам решение для фильтрации
Код: sql
1.
where SUBSTRING(timestring,12,5) in (' 8:00','20:00');

Оно вам подходит? Если не подходит то почему. Или вы его проигнорировали.

Ilmurat да, необходимо дописывать файл.Дописывание обломается, если этот файл открыт клиентом. Вам придется обрабатывать эту ошибку и оповещать клиента.

Пробовали сделать связаный сервер (linked server)?

Разобрались как в мастере экспорта дописать в существующую таблицу (а не перезаписывать ее)?

Далее: никто не сможет записать в файл не открывая файла. Формулируйте яснее. Я так понял, что вы не хотите чтобы конечный пользователь что-либо делал. А если это джоб (не SQL Agent job) на клиенте.

Ilmurat По поводу csv пробовал, так и не разобрался((( Что именно вызвало затруднения? Это тупо текстовый файл с полями, разделенными запятыми и строкой заголовка с именами полей.
...
Рейтинг: 0 / 0
30.05.2020, 10:45
    #39964324
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

С csv, не совсем понятно, как его потом переписать в excel?
linked server не попробовал, почитаю про него.
В мастере экспорта не нашёл как дописывать файл((
...
Рейтинг: 0 / 0
30.05.2020, 13:48
    #39964360
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

Благодарю)) представление с выборкой по времени сделал)) Осталось разобраться как дописывать экспортный файл.
...
Рейтинг: 0 / 0
30.05.2020, 18:16
    #39964442
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
...
Рейтинг: 0 / 0
31.05.2020, 11:54
    #39964583
Ilmurat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
SERG1257,

Благодарю, буду пробовать.
...
Рейтинг: 0 / 0
31.05.2020, 12:53
    #39964620
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию
Ilmurat
Нужно именно в excel ский файл, это возможно?

теоретически да - там zip-архив, а внутри XML, т.е. тактика такая - делаем в sqlcmd запрос с ответом в XML нужного формата, результаты жмем чем-нибудь типа консольного 7zip и все это объединяем каким-нибудь скриптом (cmd или PowerShell). Мне приходилось однажды такое делать, только не скриптом, а внутри приложения, т.ч. вариант проверенный, но бесплатно я снова делать это не стану - слишком много нудной мороки, т.ч. даю только направление для копания :))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выгрузка данных в файл без открытия файла, Выгрузка данных в файл по условию / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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