Db2

db2 跨平台函式/變數?

  • May 21, 2019

是否有可用於確定數據源來自哪個平台的 db2 函式/過程/變數?sysibm.sysdummy1 存在,所以我假設這是 Db2,但是根據 LUW 語法,有些 SQL 看起來不正確。有沒有一種簡單的方法可以通過 SQL 找出數據源來自哪個平台?

這是一個非常開放的問題,因為沒有確定伺服器版本和平台的可靠方法。您需要應用一些啟發式方法。

從 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.dualsysibmadm.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模式視圖。

引用自:https://dba.stackexchange.com/questions/238668