Код: Выделить всё
import re
import os
import pyodbc
import xml.etree.ElementTree as ET
login_db = '\*\*\*\*\*'
passwd_db ='\*\*\*\*\*\*\*'
db_str = ("Driver={PostgreSQL UNICODE(x64)};"
"Server=\*\*\*\*\*\*\*;"
"Port=5432;"
"Database=inventory_UAT;"
"Uid=%s;"
"Pwd=%s") % (login_db, passwd_db)
db_cnxn = pyodbc.connect(db_str,autocommit=True)
db_cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
db_cnxn.setencoding(encoding='utf-8')
db_cursor = db_cnxn.cursor()
import xml.etree.ElementTree as ET
tree1 = ET.parse(r"C:\\Mine\\diverts.xml")
root1 = tree1.getroot()
for div in root1.findall('{urn:activemq:core}divert'):
source = div.find('{urn:activemq:core}address').text
target = div.find('{urn:activemq:core}forwarding-address').text
name = div.attrib\['name'\]
filtr = ""
for i in div.findall('{urn:activemq:core}filter'):
filtr = i.attrib\['string'\]
qry = (("""INSERT INTO inventory.artemis_divert_inventory
(divert_name,from_address,to_address,filter,instance_type,last_update)
VALUES ('%s','%s','%s','%s','CORP-UAT',NOW());""")
%(name, source, target, filtr))
\# print(qry)
db_cursor.execute(qry)
pyodbc.ProgrammingError: ('42601', '[42601] ОШИБКА: синтаксическая ошибка на или рядом с "KondorSDEvent_uat1";\nОшибка при выполнении запроса (1) (SQLExecDirectW)')
позвольте мне добавить некоторые из этих данных в столбец фильтра:
_AMQ_ORIG_ADDRESS имеет значение NULL и (MessageType='CommodityReset' или (MessageType='Product' и ProductTy
pe='Commodity'
Идентификатор издателя ('KondorSDEvent_uat1','AdstisSDEvent_uat1')Я вообще не знаю, как решить эту проблему
Подробнее здесь: https://stackoverflow.com/questions/791 ... near-nerro
Мобильная версия