Python odbc:如何查找ODBC中的所有表
有没有办法通过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.objects
、dbo.sysobjects
或information_schema.tables
等等(关系数据库的供应商在这方面非常有创意)。
想了解更多信息,请查看你所用关系数据库管理系统的文档。或者(就我个人而言,我会强烈建议这样做),可以申请安装一个更灵活的ODBC驱动程序……