Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Добрый день.

Если такое возможно, подскажите как это можно сделать?
16 янв 18, 10:32    [21109750]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
на классическом t-sql нельзя, только использую дополнительные утилиты\возможности
16 янв 18, 10:52    [21109804]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Игорь_UUS,

Bulk Insert

автор
на классическом t-sql нельзя

это какой?
16 янв 18, 10:55    [21109814]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
TaPaK
Игорь_UUS,

Bulk Insert

автор
на классическом t-sql нельзя

это какой?

ansi-92 &))

и да - на Bulk Insert куча ограничений.

зы вопрос автору топика какая версия sql?
16 янв 18, 11:00    [21109826]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Кусочек
Guest
Гигабайт Мегабайтович Килобайтов
на классическом t-sql нельзя, только использую дополнительные утилиты\возможности


А linked server, OPENROWSET и возможно BULK INSERT не считаются "чистыми"?
16 янв 18, 11:01    [21109831]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
Кусочек
Гигабайт Мегабайтович Килобайтов
на классическом t-sql нельзя, только использую дополнительные утилиты\возможности


А linked server, OPENROWSET и возможно BULK INSERT не считаются "чистыми"?

да
16 янв 18, 11:10    [21109855]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Гигабайт Мегабайтович Килобайтов,

Используется MSSQL 2008R2

Использовать как-то так?

Select * From OpenRowset(Bulk N'C:\test.csv', Single_Blob) as [bl]
16 янв 18, 13:19    [21110406]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Я открыл данные

Select * From OpenRowset(Bulk N'C:\test.csv', SINGLE_CLOB) as [bl]


Но вот теперь непонятно что с этим можно сделать? Всё идёт через ";". Сейчас, получается, нужен парсер.
Строк в файле csv около 10000. Получилась строка, осень и очень большая)))

Есть у кого какие идеи, как можно распарсить и по колонкам и по строкам?
16 янв 18, 13:26    [21110447]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Игорь_UUS,

вас наказывают и унижают если вы читаете хелп?
16 янв 18, 13:36    [21110503]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
TaPaK
Игорь_UUS,

вас наказывают и унижают если вы читаете хелп?



не наказывают, возможно уже есть готовые парсеры, или примеры, как это может работать, чтоб не изобретать велосипед.
16 янв 18, 13:49    [21110576]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Игорь_UUS,
Была такая тема, Cammomile мне давал готовый парсер. Для 10000 строк - покатіт.
21010511
16 янв 18, 16:39    [21111460]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50432
Игорь_UUS
уже есть готовые парсеры, или примеры, как это может работать, чтоб не изобретать велосипед.

То есть прочитать документацию о функции и вызвать её с правильными параметрами это нынче "изобретение велосипеда"...
17 янв 18, 14:34    [21114048]     Ответить | Цитировать Сообщить модератору
 Re: Как загрузить внешний CSV файл во временную таблицу используя TSQL  [new]
lisischko
Member

Откуда:
Сообщений: 11
Игорь_UUS,

Можно вначале этот файл импортировать в Excel (в Excel "Данные" - "Из текста").
Затем сохранить в формате .xls или .xlsx и через openrowset обращаться уже к этому файлу:

Пример:
SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'Excel 12.0;Database=c:\xlsfile\file.xlsx',
                'SELECT * FROM [Sheet1$]')
3 июн 18, 12:25    [21464033]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить