Python odbc:如何查找ODBC中的所有表

26 投票
1 回答
34339 浏览
提问于 2025-04-18 18:41

有没有办法通过ODBC连接获取所有可用表的列表呢?

我需要从一些在过程中生成的表中获取数据,所以我事先并不知道这些表的名字。

1 个回答

38

(在这个回答时,没有指定ODBC驱动程序)
来自PyODBC文档

大多数ODBC目录功能可以作为Cursor对象的方法使用。结果会像普通的SELECT查询结果一样以行的形式呈现。关于这些内容,可以参考Cursor页面,不过查看微软的ODBC文档会更有帮助,里面有更多详细信息。

cnxn   = pyodbc.connect(...)
cursor = cnxn.cursor()
for row in cursor.tables():
    print row.table_name

编辑:根据提问者的说明,使用的是“Anaconda ODBC”:

据我所知,PyWin32-odbc并不能直接访问这些数据(我认为这就是Anaconda使用的)。根据你使用的数据库,可能会有一个“系统表”可以查询。比如说像sys.objectsdbo.sysobjectsinformation_schema.tables等等(关系数据库的供应商在这方面非常有创意)。

想了解更多信息,请查看你所用关系数据库管理系统的文档。或者(就我个人而言,我会强烈建议这样做),可以申请安装一个更灵活的ODBC驱动程序……

撰写回答