使用 pyodbc 查询 Informix table 会产生 ODBC SQL type -103 is not yet supported 错误
Querying Informix table using pyodbc produces ODBC SQL type -103 is not yet supported error
我正在尝试使用 pyodbc 从 Informix 数据库查询 table,并使用以下代码将结果写入 CSV 文件:
import pyodbc
import pandas as pd
server = '***.***.***.***'
dsn= 'informixdb'
username = 'user'
password = 'user123'
csvFile = r"C:\temp\bookings.csv"
conn = pyodbc.connect(dsn=f'{dsn}', uid=f'{username}', pwd=f'{password}')
cursor = conn.cursor()
sql = "SELECT FIRST 5 * from bookingsd"
df = pd.read_sql_query(sql, conn)
df.to_csv(csvFile, index=False)
我也试过以下方法:
import pyodbc, csv
server = '***.***.***.***'
dsn= 'informixdb'
username = 'user'
password = 'user123'
csvFile = r"C:\temp\bookings.csv"
conn = pyodbc.connect(dsn=f'{dsn}', uid=f'{username}', pwd=f'{password}')
cursor = conn.cursor()
sql = "SELECT FIRST 5 * from bookingsd"
rows = cursor.execute(sql)
with open(csvFile, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([x[0] for x in cursor.description]) # column headers
for row in rows:
writer.writerow(row)
两者都产生相同的错误:
ODBC SQL type -103 is not yet supported. column-index=136
type=-103', 'HY106'
pyodbc 游标对象(即行)似乎发生了错误。有谁知道这个错误指的是什么?
因为 Informix 数据类型 CLOB 和 BLOB 不是标准的 ODBC 类型,您可能需要告诉 ODBC 驱动程序自动处理这些类型。
您可以通过设置“SQL_INFX_ATTR_ODBC_TYPES_ONLY”ODBC 属性或向连接字符串添加“NeedODBCTypesOnly=1”来启用 ODBC 驱动程序中的“报告标准 ODBC 类型”功能。
https://www.ibm.com/docs/en/informix-servers/14.10?topic=types-report-standard-odbc
我正在尝试使用 pyodbc 从 Informix 数据库查询 table,并使用以下代码将结果写入 CSV 文件:
import pyodbc
import pandas as pd
server = '***.***.***.***'
dsn= 'informixdb'
username = 'user'
password = 'user123'
csvFile = r"C:\temp\bookings.csv"
conn = pyodbc.connect(dsn=f'{dsn}', uid=f'{username}', pwd=f'{password}')
cursor = conn.cursor()
sql = "SELECT FIRST 5 * from bookingsd"
df = pd.read_sql_query(sql, conn)
df.to_csv(csvFile, index=False)
我也试过以下方法:
import pyodbc, csv
server = '***.***.***.***'
dsn= 'informixdb'
username = 'user'
password = 'user123'
csvFile = r"C:\temp\bookings.csv"
conn = pyodbc.connect(dsn=f'{dsn}', uid=f'{username}', pwd=f'{password}')
cursor = conn.cursor()
sql = "SELECT FIRST 5 * from bookingsd"
rows = cursor.execute(sql)
with open(csvFile, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([x[0] for x in cursor.description]) # column headers
for row in rows:
writer.writerow(row)
两者都产生相同的错误:
ODBC SQL type -103 is not yet supported. column-index=136 type=-103', 'HY106'
pyodbc 游标对象(即行)似乎发生了错误。有谁知道这个错误指的是什么?
因为 Informix 数据类型 CLOB 和 BLOB 不是标准的 ODBC 类型,您可能需要告诉 ODBC 驱动程序自动处理这些类型。
您可以通过设置“SQL_INFX_ATTR_ODBC_TYPES_ONLY”ODBC 属性或向连接字符串添加“NeedODBCTypesOnly=1”来启用 ODBC 驱动程序中的“报告标准 ODBC 类型”功能。
https://www.ibm.com/docs/en/informix-servers/14.10?topic=types-report-standard-odbc