如何使用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
相关产品推荐
相关产品推荐

