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

24

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

我需要从生成的表中提取数据,因此不知道预先知道表名。


查询 ODBC模式 - Sylvain Leroux
抱歉我的无知,但这在Python ODBC中如何应用? - user2866103
你正在使用哪个Python ODBC库 - Sylvain Leroux
ODBC(而不是pyODBC) - user2866103
1个回答

36

(在回答时未指定ODBC驱动程序)


来自PyODBC文档

大多数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.objectsdbo.sysobjectsinformation_schema.tables等等(关系型数据库管理系统供应商在这个领域非常有创意)。

请查看底层RDBMS文档以获取更多信息。或者(就我个人而言,我强烈推荐这样做),提出安装更多功能的ODBC驱动程序的请求...


谢谢。虽然我正在使用标准的Anaconda软件包,但我只能使用ODBC而不能使用pyodbc(由于安全原因,我不能安装软件包)- ODBC中的游标没有tables()属性。有什么解决办法吗? - user2866103
@user2866103 为 PyWin32-odbc 进行了编辑。 - Sylvain Leroux
这是在搜索了数小时的SO后得出的最佳答案! - eddyizm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接