You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pyodbc通过通用查询读取ODBC数据并获取表/列信息?

通用获取ODBC数据库元数据的方法

你可以直接使用pyodbc内置的元数据查询方法,这些方法基于ODBC标准接口,无需针对不同数据库编写专属SQL语句,就能统一获取表名、列名等信息:

1. 获取所有表名

使用cursor.tables()方法,它会返回当前连接数据库中的所有表(可过滤表类型):

import pyodbc

conn_str = f"DSN={dsn};UID={username};PWD={password}"
connection = pyodbc.connect(conn_str)
cursor = connection.cursor()

# 获取所有用户表(排除视图、系统表等)
tables = cursor.tables(tableType='TABLE')
for table in tables:
    print(table.table_name)  # 打印表名

tableType参数可指定过滤类型,常见值有'TABLE'(用户表)、'VIEW'(视图)、'SYSTEM TABLE'(系统表),多个类型用逗号分隔,比如tableType='TABLE,VIEW'。

2. 获取指定表的列名

使用cursor.columns()方法,传入表名即可获取该表的所有列信息:

# 获取指定表的列信息
columns = cursor.columns(table='your_table_name')
for col in columns:
    print(col.column_name)  # 打印列名
    # 还可获取列类型、长度等其他元数据:col.type_name, col.column_size等

如果数据库有schema(比如SQL Server的dbo),可以指定schema参数:

columns = cursor.columns(schema='dbo', table='your_table_name')

关键说明

这些方法是ODBC标准定义的,pyodbc直接封装了底层接口,自动适配不同数据库的元数据查询逻辑,和Excel连接ODBC时的自动获取逻辑一致,完全不需要手动编写SHOW TABLES或INFORMATION_SCHEMA这类专属SQL。

内容的提问来源于stack exchange,提问作者Nandkishor Chavan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:35:19