[英]python and sql: issue reading a sql file
我正在尝试读取一个sql文件,但它一直给我错误:
UnicodeError: UTF-16 stream does not start with BOM
我创建了一个fxn来专门读取sql文件:
import pandas as pd
import pyodbc as db
import os
import codecs
def sql_reader_single(qry_file, server_name, database, encoding='utf16'):
server = db.connect(str('DRIVER={SQL Server};SERVER='+server_name+';DATABASE='+database+';'))
with codecs.open(qry_file, encoding=encoding) as qf:
data = pd.read_sql(qf.read(), server)
return data
然后我称它为读取数据:
Data = sp.sql_reader_single(qry_file=QryFile, server_name='my_server', database='my_db')
我究竟做错了什么?
我调查了:
并尝试了utf-16-le或utf-16-be,但是一堆这样的日文/中文字符会出现错误:
pandas.io.sql.DatabaseError: Execution failed on sql '䕓䕌呃ഠ 楤瑳湩瑣††⨠†剆䵏䔠坄䔮坄䘮捡剴捥楥楶杮潇摯牦൧': ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '0x0a0d'. (102) (SQLExecDirectW)")
sql文件包含一个非常简单的查询,如下所示:
SELECT distinct *
FROM FactReceiving
尝试将文件读取为UTF-8
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.