powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Загрузка диапазона из Excel в MSSQL
2 сообщений из 2, страница 1 из 1
Загрузка диапазона из Excel в MSSQL
    #39210587
vlv74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня задача:
по почте приходит файл *.txt определённой структуры
я использую клиента MS Outlook
на событие получения почты стоит скрипт,
который преобразует файл в excel табличку,
проверяет корректность данных,
добавляет в табличку несколько столбцов с формулами,
в результате получаю таблицу аналогичную таблице в MSSQL

как загрузить в таблицу SQL диапазон из Excel
пробовал загружать по одной строке, но это очень долго (порядка 10000 строк)
...
Рейтинг: 0 / 0
Загрузка диапазона из Excel в MSSQL
    #39210707
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
загрузите сразу файл тхт целиком:
1. сохраните файл на диск
2. потом запрос
Код: sql
1.
2.
Insert Into MyTable(перечень столбцов)
select перечень столбцов from OPENROWSET(BULK 'Путь к файлу\файл.txt', FORMATFILE = 'путь к файлу форматирования\файл.fmt') x


Единственная загвоздка - SQL сервер должен иметь доступ к папке с файлом

(для версии 2005 и выше )сформируйте из файла xml-файл и работайте с ним:
1. парсите файл и формируете xml (пример, но не обязательный)<ROOT><row>...</row><row>...</row></ROOT>
2.потом запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @x xml = 'сюда вставляете полученный xml'
Insert Into MyTable(перечень столбцов)
select
	c.col.value('(...)[1]', ...'),
	c.col.value('(...)[1]', ...')
        ....
from
	@x.nodes('/root/row') c(col)



и самый простой вариант (нужно только учесть, что длина команды в 200 и раньше до 8000 символов и Вам не подойдет
1. формируете запрос
Код: sql
1.
2.
3.
4.
Insert Into MyTable(перечень столбцов)
select значения из файла union all[
select значения из файла union all
select значения из файла 


кол-во таких select будет равно кол-ву строк в файле


есть возможно и другие способы, но я пользуюсь такими, т.к в любом случае один их них мне подйдёт
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Загрузка диапазона из Excel в MSSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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