Db2
db2 跨平台函式/變數?
是否有可用於確定數據源來自哪個平台的 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.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
模式視圖。