有没有办法通过ODBC连接获取所有可用表的列表?
我需要从生成的表中提取数据,因此不知道预先知道表名。
(在回答时未指定ODBC驱动程序)
大多数ODBC目录函数都作为光标对象的方法可用。结果以正常提取的行中的SELECT结果形式呈现。有关这些内容,请参见光标页面文档,但是可以参考Microsoft的ODBC文档了解更多详细信息。
cnxn = pyodbc.connect(...)
cursor = cnxn.cursor()
for row in cursor.tables():
print row.table_name
编辑:由于OP指定了使用 "Anaconda ODBC":
据我所知,通过PyWin32-odbc(我认为这是Anaconda使用的)无法直接访问这些数据。 根据您底层数据库的不同,它们可能是可以查询的“系统表”,例如sys.objects
,dbo.sysobjects
,information_schema.tables
等等(关系型数据库管理系统供应商在这个领域非常有创意)。
请查看底层RDBMS文档以获取更多信息。或者(就我个人而言,我强烈推荐这样做),提出安装更多功能的ODBC驱动程序的请求...