从 C#/ODBC 枚举 iSeries DB2 中的表

Enumerate tables in iSeries DB2 from C#/ODBC

我需要枚举所有 table(我的意思是获取模式列表和 table 名称字符串)和 iSeries DB2 数据库中的视图(我相信版本 7,但我可能是错误的),我有一个 ODBC 连接。我试过了:

show tables
select * from syscat.tables

但是,服务器分别响应 show tables 的未知命令和 select 的未知 table 命令:

ERROR [42S02] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 - TABLES in SYSCAT type *FILE not found

我知道可以通过某种方式枚举 tables,因为 Visual Studio 从服务器资源管理器中进行枚举。我可能忽略了一些非常明显的东西,但我并不真正精通 ODBC。谢谢

根据 manual,您可能想要使用

select table_name from sysibm.sqltables

要获取 table 个名字,请尝试 select * 来自 QSYS2.SYSTABLES