运行python脚本将数据从PostgreSQL推送到MSSQL时遇到错误。
2020/09/17 09:55:26:mssql:ERROR:将数据插入mssql时发生了非常错误的事情-崩溃 追溯(最近一次通话): importToMSSQLReal中的文件“ ./my_file.py”,第40行 dataToInsert) pyodbc.ProgrammingError :(“ 42000”,“ [42000] [Microsoft] [用于SQL Server的ODBC驱动程序17] [SQL Server]关键字“ key”附近的语法不正确。(156)(SQLExecute)”)
这是代码行:
query = """SELECT vi.asset_id ,vi.vulnerability_id,a.last_assessed_for_vulnerabilities as "last_detected",vi.status,vi.proof::varchar(10485760),vi.key::varchar(10485760),vi.service,vi.port,vi.protocol
FROM public.fact_asset_vulnerability_instance vi
INNER JOIN public.dim_asset a
ON vi.asset_id = a.asset_id"""
插入
def importToMSSQLReal(mssql,mssqlstring,dataToInsert):
mssql = pyodbc.connect(mssqlstring)
log = logging.getLogger('mssql')
curs = mssql.cursor()
curs.fast_executemany = True
try:
curs.executemany(
"INSERT INTO {table} (asset_id,vulnerability_id,last_detected,status,proof,key) VALUES (?,?,?,?,?,?)".format(table=mscfg['table']),
dataToInsert)
mssql.commit()
except:
print("bad")
log.exception("Something went very wrong interting data into mssql - bailing")
exit(2)
curs.close()
mssql.close()
del mssql