Lennart - Slava Ukraini Asked: 2019-05-22 01:34:35 +0800 CST2019-05-22 01:34:35 +0800 CST 2019-05-22 01:34:35 +0800 CST db2 跨平台函数/变量? 772 是否有可用于确定数据源源自哪个平台的 db2 函数/过程/变量?sysibm.sysdummy1 存在,因此我假设这是 Db2,但根据 LUW 语法,某些 SQL 看起来不正确。有没有一种简单的方法可以通过 SQL 找出数据源来自哪个平台? db2 db2-luw 1 个回答 Voted Best Answer mustaccio 2019-05-22T13:19:16+08:002019-05-22T13:19:16+08:00 这是一个非常开放的问题,因为没有确定服务器版本和平台的万无一失的方法。您需要应用一些启发式方法。 从 v 10.1 开始,在Db2 for LUW(并且只有 LUW)中,有一个dbmcfg可以返回服务器版本的系统视图: select value from sysibmadm.dbmcfg where name = 'release' 因此,如果成功,您将确定它是特定版本级别的 LUW 的 Db2。同样,从 v 9.7 开始,您可以查询sysibmadm.env_inst_info(或先在 中搜索syscat.tables)。 Db2 for LUW 的另一个指标是自 v.9.7 以来存在一些与 Oracle 兼容的视图,例如syspublic.dual或sysibmadm.all_objects。 Db2 for z/OS的一个很好的指标是存在特定于大型机的目录表,例如sysibm.locationsor sysibm.syscopy,它们至少可以追溯到 v9。 QSYS和模式中目录视图的存在QSYS2,例如QSYS2.TABLES,将指示Db2 for i (AS/400)。 Db2 for z/OS 和 Db2 for i 都没有SYSCAT模式视图。
这是一个非常开放的问题,因为没有确定服务器版本和平台的万无一失的方法。您需要应用一些启发式方法。
从 v 10.1 开始,在Db2 for LUW(并且只有 LUW)中,有一个
dbmcfg
可以返回服务器版本的系统视图:因此,如果成功,您将确定它是特定版本级别的 LUW 的 Db2。同样,从 v 9.7 开始,您可以查询
sysibmadm.env_inst_info
(或先在 中搜索syscat.tables
)。Db2 for LUW 的另一个指标是自 v.9.7 以来存在一些与 Oracle 兼容的视图,例如
syspublic.dual
或sysibmadm.all_objects
。Db2 for z/OS的一个很好的指标是存在特定于大型机的目录表,例如
sysibm.locations
orsysibm.syscopy
,它们至少可以追溯到 v9。QSYS
和模式中目录视图的存在QSYS2
,例如QSYS2.TABLES
,将指示Db2 for i (AS/400)。Db2 for z/OS 和 Db2 for i 都没有
SYSCAT
模式视图。