簡體   English   中英

python和sql:讀取sql文件時出現問題

[英]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')

我究竟做錯了什么?

我調查了:

在python中查找utf-16文件。 怎么樣?

並嘗試了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM