МАССОВАЯ ВСТАВКА с сервера sql как запрос в python ⇐ Python
МАССОВАЯ ВСТАВКА с сервера sql как запрос в python
Я столкнулся со следующей задачей:
У меня есть активное соединение моего приложения Python с сервером sql, и я хотел бы выполнить операцию массовой вставки, которая вставляет данные из определенного файла в мою базу данных. Когда я выполняю это непосредственно с сервера sql, все работает нормально, но с Python я всегда получаю сообщение об escape-символе '/' - это машина Windows.
Я не могу понять, как это сделать: я попробовал: а) заменить '/' на '//', но затем сервер sql раздавлен б) создать хранимую процедуру и обратиться к ней в c.execute, но она тоже не работает в) заменить '/' на '' - тогда sql не сможет открыть файл г) создать переменную с необработанной строкой r'' и передать ее в качестве параметра в код сервера sql, но это также не работает
conn = pyodbc.connect(f'DRIVER={driver};SERVER={server};DATABASE={database};UID={user};PWD={пароль}') с = конн.курсор() c.execute(''' ОБЪЕМНАЯ ВСТАВКА Имя ИЗ 'C:\Users\pllmkd\Desktop\test.txt' С ( ТЕРМИНАТОР ПОЛЯ = ',') ''') c.commit() в.закрыть() конн.закрыть() Каким должен быть подход к этой проблеме? Я не хочу читать файл построчно, поскольку в каждом файле, который я хочу загрузить, есть сотни тысяч строк.
Я получаю ошибку:
SyntaxError: (ошибка Юникода) Кодек 'unicodeescape' не может декодировать байты в позициях 36–37: усеченный escape-символ \UXXXXXXXX Не могли бы вы предложить решение?
Заранее благодарим за любые советы
Я столкнулся со следующей задачей:
У меня есть активное соединение моего приложения Python с сервером sql, и я хотел бы выполнить операцию массовой вставки, которая вставляет данные из определенного файла в мою базу данных. Когда я выполняю это непосредственно с сервера sql, все работает нормально, но с Python я всегда получаю сообщение об escape-символе '/' - это машина Windows.
Я не могу понять, как это сделать: я попробовал: а) заменить '/' на '//', но затем сервер sql раздавлен б) создать хранимую процедуру и обратиться к ней в c.execute, но она тоже не работает в) заменить '/' на '' - тогда sql не сможет открыть файл г) создать переменную с необработанной строкой r'' и передать ее в качестве параметра в код сервера sql, но это также не работает
conn = pyodbc.connect(f'DRIVER={driver};SERVER={server};DATABASE={database};UID={user};PWD={пароль}') с = конн.курсор() c.execute(''' ОБЪЕМНАЯ ВСТАВКА Имя ИЗ 'C:\Users\pllmkd\Desktop\test.txt' С ( ТЕРМИНАТОР ПОЛЯ = ',') ''') c.commit() в.закрыть() конн.закрыть() Каким должен быть подход к этой проблеме? Я не хочу читать файл построчно, поскольку в каждом файле, который я хочу загрузить, есть сотни тысяч строк.
Я получаю ошибку:
SyntaxError: (ошибка Юникода) Кодек 'unicodeescape' не может декодировать байты в позициях 36–37: усеченный escape-символ \UXXXXXXXX Не могли бы вы предложить решение?
Заранее благодарим за любые советы
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Массовая вставка в таблицы с отношением «многие ко многим» с помощью SQLAlchemy.
Anonymous » » в форуме Python - 0 Ответы
- 69 Просмотры
-
Последнее сообщение Anonymous
-