Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Аналог BULK INSERT но для переменной!?!?  [new]
Hamber
Member

Откуда: Москва
Сообщений: 310
Всех приветствую.

Необходимо загрузить CSV файл в некую таблицу(Table1), содержимое которого лежит в таблице в поле varchar.

Вариант c BULK INSERT не подходит т.к. он грузит только из файла:

BULK INSERT Table FROM 'c:\1.csv'
.

Нужно что-то вроде:

DECLARE @ResCSV varchar(8000)

SELECT @ResCSV = CSV from Table1
WHERE id=1

BULK INSERT Table FROM @ResCsv


Какие есть варианты?
28 авг 12, 17:47    [13078062]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Hamber,

Читать про
OPENROWSET
28 авг 12, 17:48    [13078072]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Hamber
Какие есть варианты?

тоже самое, но в динамике
28 авг 12, 17:48    [13078073]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Alexandr Kr.
Hamber,

Читать про
OPENROWSET


А. сори. не так вопрос понял.
28 авг 12, 17:50    [13078083]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Выгрузить в файл.
Загрузить.
28 авг 12, 17:51    [13078097]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31431
Hamber
Необходимо загрузить CSV файл в некую таблицу(Table1), содержимое которого лежит в таблице в поле varchar.

Вариант c BULK INSERT не подходит т.к. он грузит только из файла:
Честно говоря не понял вопроса.

"Необходимо загрузить из файла, но BULK INSERT не подходит т.к. он грузит только из файла"

В переменной что лежит, данные, которые нужно загрузить в таблицу?

"Необходимо загрузить CSV файл в некую таблицу(Table1), содержимое которого лежит" - Содержимое файла лежит в переменной? Или что?

Если содержимое, тогда
insert mytable(field)
select @variable


Или попробуйте, пожалуста, сформулировать вопрос ещё раз.
28 авг 12, 18:20    [13078235]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
alexeyvg,

Думаю, что ТСу "файл в поле" надо загрузить в таблицу из нескольких столбцов.
28 авг 12, 18:28    [13078281]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Hamber
Member

Откуда: Москва
Сообщений: 310
Есть поле CSV в таблице Table

в котором есть следующее содержимое:

id1;id2;id3
1;2;3
4;5;6
7;8;9


Необходимо его загрузить в таблицу со структурой id1;id2;id3.

Если это был бы файл, это я сделал бы через

BULK INSERT Table2 FROM 'c:\1.csv' 


и всё. И файл бы разложился и распарсился бы в таблицу.

Но файла нету, есть только поле.

Можно ли его загрузить избегая записи содержимого файла на диск?
28 авг 12, 18:38    [13078326]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Hamber
Можно ли его загрузить избегая записи содержимого файла на диск?

Написать функцию, которая распарсит содержимое поле и вернет его в качестве набора
28 авг 12, 19:25    [13078493]     Ответить | Цитировать Сообщить модератору
 Re: Аналог BULK INSERT но для переменной!?!?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Hamber
Какие есть варианты?
Не пихать в базу всё не попадя, а сразу писать в нужном виде.
29 авг 12, 13:06    [13081732]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить