Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разбор xls из varbinary(max)  [new]
gnatochka
Member

Откуда: Kazan
Сообщений: 46
Добрый день,
Помогите пожалуйста,
Есть файл xls хранящийся на сервере в поле типа varbinary(max)
Считать с диска через OPENROWSET вроде легко, а вот из поля таблицы не знаю как подступиться :(

Понимаю что это с клиента обычно делают, но клиент закрытый, поэтому нужна обработка силами SQL Server.
Пока додумалась только до изврата записать на диск, и от туда считать через OPENROWSET
3 июн 17, 13:22    [20536806]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
gnatochka
Пока додумалась только до изврата записать на диск, и от туда считать через OPENROWSET
Вообще вы читаете не "с диска через OPENROWSET", а обращаетесь к драйверу доступа к Exel-данным через функцию OPENROWSET, а этот драйвер уже читает с диска.
Т.е. это уже задача - как драйверу доступа к Exel (Oracle, Active Directory и т.д.) дать не предусмотренные их создателями параметры доступа, а область памяти. Честно говоря, думаю, это не так просто, скорее всего, невозможно.
3 июн 17, 17:16    [20537108]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
aleks2
Guest
alexeyvg
gnatochka
Пока додумалась только до изврата записать на диск, и от туда считать через OPENROWSET
Вообще вы читаете не "с диска через OPENROWSET", а обращаетесь к драйверу доступа к Exel-данным через функцию OPENROWSET, а этот драйвер уже читает с диска.
Т.е. это уже задача - как драйверу доступа к Exel (Oracle, Active Directory и т.д.) дать не предусмотренные их создателями параметры доступа, а область памяти. Честно говоря, думаю, это не так просто, скорее всего, невозможно.


Вы бредите.

Тредстартерша хранит "файл xls хранящийся на сервере в поле типа varbinary(max)", т.е. SINGLE_BLOB.

"Читается" он из таблицы так же лехко и непринужденно:

declare @xls varchar(max);

select @xls  = [из поля таблицы] from таблица where ...;
3 июн 17, 17:47    [20537127]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
aleks2
Вы бредите.

Тредстартерша хранит "файл xls хранящийся на сервере в поле типа varbinary(max)", т.е. SINGLE_BLOB.
Сами то верите? :-)

Конечно, её нужно прочитать содержимое эксельного файла, строки, в них колонки.
3 июн 17, 17:57    [20537133]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
gnatochka
Member

Откуда: Kazan
Сообщений: 46
aleks2

"Читается" он из таблицы так же лехко и непринужденно:

declare @xls varchar(max);

select @xls  = [из поля таблицы] from таблица where ...;


Так он конечно считывается, но как с ним дальше быть? мне нужно инфу из него, "из такой то ячейки"
4 июн 17, 11:02    [20537774]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Rankatan
Member

Откуда:
Сообщений: 250
Была похожая задача, способа чтения напрямую из таблицы не нашел. Пришлось выгружать на диск.

Если очень нужно, то можно выкрутится через filestream или filetable (те когда varbinary лежат как файлы на диске)
4 июн 17, 11:04    [20537778]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
aleks2
Guest
gnatochka
aleks2
"Читается" он из таблицы так же лехко и непринужденно:

declare @xls varchar(max);

select @xls  = [из поля таблицы] from таблица where ...;


Так он конечно считывается, но как с ним дальше быть? мне нужно инфу из него, "из такой то ячейки"

Дык нафига его хранить SINGLE_BLOB?

ЗЫ. Хотя xlsx - это XML. Можно и разобрать.
4 июн 17, 11:56    [20537818]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
FrozenByte
Member

Откуда:
Сообщений: 6
aleks2
Хотя xlsx - это XML. Можно и разобрать.

Сначала это ZIP, а потом уже XML
4 июн 17, 15:21    [20537990]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5958
FrozenByte
aleks2
Хотя xlsx - это XML. Можно и разобрать.

Сначала это ZIP, а потом уже XML

Причем несколько XML.
4 июн 17, 16:04    [20538023]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7769
SSIS - это же для слабаков!
5 июн 17, 11:16    [20539499]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Владислав Колосов
SSIS - это же для слабаков!
А что, SSIS это умеет???
5 июн 17, 15:33    [20540685]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7769
alexeyvg,

XLS загружать? Конечно.Решение роде бы правильное: сохранять в файл, затем файл парсить, не вижу ничего такого криминального.
5 июн 17, 16:38    [20540944]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
автор
сохранять в файл, затем файл парсить

С сохранением в файл создатель топика справилась и без SSIS.

Но Владислав Колосов, как обычно, генерирует поток сознания в отрыве от контекста топика.
5 июн 17, 17:07    [20541043]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7769
Cammomile,

к чему этот коммент? Выражаете жалкую неприязнь к моей личности?
5 июн 17, 17:12    [20541063]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
А к чему ваши комменты? Выражаете жалкую неприязнь к здравому смыслу и логике?
5 июн 17, 17:21    [20541091]     Ответить | Цитировать Сообщить модератору
 Re: Разбор xls из varbinary(max)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Владислав Колосов
alexeyvg,

XLS загружать? Конечно.Решение роде бы правильное: сохранять в файл, затем файл парсить, не вижу ничего такого криминального.
Задача другая - получить данные из экселя, записанного в поле таблицы, не выгружая её в файл.
Вариант с выгрузкой в файл не обсуждается, ТС же об этом сказала.
6 июн 17, 02:26    [20541894]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить