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

mmi*_*mix 0 c# db2 odbc ibm-midrange

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

show tables
select * from syscat.tables
Run Code Online (Sandbox Code Playgroud)

但是,服务器分别以未知命令show tables和未知表响应:

错误 [42S02] [IBM][System i Access ODBC 驱动程序][DB2 for i5/OS]SQL0204 - SYSCAT 类型中的表 *FILE 未找到

我知道枚举表是有可能的,因为 Visual Studio 是从服务器资源管理器中完成的。我可能忽略了一些非常明显的东西,但我并不真正精通 ODBC。谢谢。

mus*_*cio 5

根据手册,您可能想要使用类似

select table_name from sysibm.sqltables
Run Code Online (Sandbox Code Playgroud)

  • 好的,有效,你先回答,所以我会接受你的回答。虽然我找到了 VS 的方法,但在 `OdbcConnection` 对象上有一个 `GetSchema` 方法,它返回架构特定部分的详细信息。例如调用`conn.GetSchema("Tables");` 返回我需要的。 (2认同)