【问题标题】:PYODBC - Type Error: the first argument to execute must be a string or unicode queryPYODBC - 类型错误:要执行的第一个参数必须是字符串或 unicode 查询
【发布时间】:2019-10-18 22:08:49
【问题描述】:

一直在尝试使用 PYODBC 连接我们的 ERP ODBC,虽然我得到了正确的语法,但此时我得到的唯一错误是“TypeError:要执行的第一个参数必须是字符串或 unicode 查询”

我尝试添加 .decode('utf-8')。

import pyodbc 
import pandas as pd 

conn = pyodbc.connect(
                      'DRIVER={SQL Server};'
                      'SERVER=192.168.1.30;'
                      'DATABASE=Datamart;'
                      'Trusted_Connection=yes;')
cursor = conn.cursor() 
for row in cursor.tables(tableType='TABLE'): 
    print(row)
sql = """SELECT * FROM ETL.Dim_FC_UPS_Interface_Detail"""
cursor.execute(row, sql)

df = pd.read_sql(sql, conn)
df.head()

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    我认为您的命令顺序对于使用 pyodbc 游标执行功能有点偏离。请参阅docs

    cursor = conn.cursor()
    sql = """SELECT * FROM ETL.Dim_FC_UPS_Interface_Detail"""
    cursor.execute(sql)
    
    for row in cursor:
        print(row)
    

    【讨论】:

      猜你喜欢
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多