powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт в MSSQL из *.txt
6 сообщений из 6, страница 1 из 1
Импорт в MSSQL из *.txt
    #32070822
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь экспортировать данные из текстового файла в SQL базу с помощью BULK INSERT и вот результат:
В QA код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BULK INSERT NFSK.dbo.SomeTable
   FROM 'C:\SomeDirectory\SomeFile.txt'
   WITH 
      (
         FIELDTERMINATOR = '" "',
         ROWTERMINATOR = '
'
      )

выполняется без проблем, а когда я его в STORED PROCEDURE запихнул и путь к источнику заменил входным параметром (тип - varchar(255)), получил ошибку. Чего можно с этим сделать.
Заранее благодарен.
...
Рейтинг: 0 / 0
Импорт в MSSQL из *.txt
    #32070825
Фотография smeh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какую ошибку?
...
Рейтинг: 0 / 0
Импорт в MSSQL из *.txt
    #32070832
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Error 170:Line 5:Incorrect syntax near '@FileName' - это при проверке синтаксиса в процедуре

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 3 :
 4 :BULK INSERT NFSK.dbo.tmpClientBank_Exim_TXT
 5 :   FROM @FileName
 6 :   WITH 
      (
         FIELDTERMINATOR = '" "',
         ROWTERMINATOR = '
'
      )
...
Рейтинг: 0 / 0
Импорт в MSSQL из *.txt
    #32070856
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменную в качестве параметра в BULK INSERT использовать нельзя.
Придется строить динамический запрос
...
Рейтинг: 0 / 0
Импорт в MSSQL из *.txt
    #32070857
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERT принимает строку, а не переменную в качестве параметра 'data_file'.

Вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE PROCEDURE dbo.bulk_insert
  @FileName varchar( 8000 )
AS
SET NOCOUNT ON

EXEC('
BULK INSERT NFSK.dbo.tmpClientBank_Exim_TXT
   FROM ''' + @FileName + '''
   WITH 
      (
         FIELDTERMINATOR = ''" "'',
         ROWTERMINATOR = ''
''
      )')
GO
...
Рейтинг: 0 / 0
Импорт в MSSQL из *.txt
    #32070872
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, jimmers. Работает. Я, правда, подобное делал, но через EXEC sp_executesql так у меня ругалось на ROWTERMINATOR (а точнее на пару CR/LF)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт в MSSQL из *.txt
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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