Массовая вставка текстового файла в SQL Server с помощью pymssql

1

Я пытаюсь импортировать текстовый файл в SQL Server 2014 с помощью pymssql (я немного начинающий с python, но, похоже, это самый простой способ сделать это, если вы знаете немного SQL). SQL-сервер находится на той же машине, что и файл, который я импортирую.

Это мой текущий код

SQLCon = pymssql.connect(host=ServerNm,database=DatabaseNm)
Cursor = SQLCon.cursor()

BulkInsert = '''
    BULK INSERT OD_List
    FROM {}
    WITH (
        FIRSTROW=2
      , FIELDTERMINATOR=','
      , ROWTERMINATOR='\n'
    )
'''.format("'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")

Cursor.execute(BulkInsert)
SQLCon.commit()

Я нашел несколько примеров кодирования в Интернете и попробовал их все безрезультатно... Я продолжаю приводить следующую ошибку:

File "pymssql.pyx", line 467, in pymssql.Cursor.execute (pymssql.c:7561)      
pymssql.OperationalError: (4861, 'Cannot bulk load because the file 
"C:\\Users\thomsog1\\Desktop\\TM Tool\\Test\\SQL\\Inputs\\OD_List.txt" could 
not be opened. Operating system error code 123(The filename, directory name, 
or volume label syntax is incorrect.).DB-Lib error message 20018, severity 
16:\nGeneral SQL Server error: Check messages from the SQL Server\n') 

Любая помощь могла бы быть полезна!

Теги:
pymssql

1 ответ

0
Лучший ответ

Путь файла в предложении FROM оператора BULK INSERT должен быть заключен в одинарные кавычки для T-SQL, но он также включает обратную косую черту, поэтому нам нужно использовать исходную строку Python (r"..."), следовательно

.format(r"'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню