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

Откуда: Москва / Калуга
Сообщений: 33655
Блог
Можно ли использовать BULK INSERT в хранимой процедуре примерно таким образом:

ALTER PROCEDURE BulkInsProc
@path nvarchar(255)
AS
BULK INSERT tempdb.dbo.PU_pack01
FROM @path
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2,
CODEPAGE = 'RAW'
)
GO
EXECUTE BulkInsProc '\\ws109\TMP\new\PU174505N23.f1'

У меня выдает
Server: Msg 170, Level 15, State 1, Procedure BulkInsProc, Line 5
Line 5: Incorrect syntax near '@path'.
Server: Msg 4860, Level 16, State 1, Procedure BulkInsProc, Line 4
Could not bulk insert. File 'path' does not exist.
19 янв 05, 16:24    [1257952]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT в хранимой процедуре  [new]
Glory
Member

Откуда:
Сообщений: 104760
А там вместо имени файла нельзя ставить переменную. By design
19 янв 05, 16:27    [1257972]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT в хранимой процедуре  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
FAQ
19 янв 05, 16:27    [1257973]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT в хранимой процедуре  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33655
Блог
>Glory
>pkarklin


ок, спасибо
19 янв 05, 16:33    [1258005]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: BULK INSERT в хранимой процедуре  [new]
Kirill_l.s.
Member

Откуда:
Сообщений: 18
Добрый вечер!
Столкнулся со схожей задачей.
Подскажите, как удалось решить всплывающие ошибки?
29 янв 18, 19:19    [21148527]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT в хранимой процедуре  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Kirill_l.s.
Добрый вечер!
Столкнулся со схожей задачей.
Подскажите, как удалось решить всплывающие ошибки?
Как в этой теме предложили решить, так и надо делать.
29 янв 18, 19:54    [21148649]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT в хранимой процедуре  [new]
Bobby
Member

Откуда:
Сообщений: 627
Если актуально кому, вот рабочий код, который у меня работает в хранимой процедуре (вставка балком во временную таблицу из текстового файла):
                    IF OBJECT_ID('tempdb..#t','U') IS NOT NULL DROP TABLE #t
		   CREATE TABLE #t(
			[datastamp] [varchar](50) NULL,
			[frame_size] [varchar](50) NULL,
			[header_size] [varchar](50) NULL,
			[vlan] [varchar](50) NULL,
			[prot] [varchar](50) NULL,
			[ip_src] [varchar](50) NULL,
			[port_src] [varchar](50) NULL,
			[ip_dest] [varchar](50) NULL,
			[port_dest] [varchar](50) NULL,
			[url] [varchar](max) NULL,
			[prot_string] [varchar](max) NULL,
			[dns] [varchar](max) NULL,
			[ip_dns] [varchar](50) NULL,
			[xml] [varchar](max) NULL
		  ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

		  SET @sql='BULK INSERT #t FROM '+''''+@folder_exec+'\'+@fname+''''
		  EXEC sp_executesql @sql 

где
@folder_exec -- папка
@fname -- файл
29 янв 18, 21:53    [21148933]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить