Db2
如何從 DB2 中選擇 NOT NULL 列
我有一個針對 DB2 數據庫使用的腳本,我希望它能夠在嘗試之前檢查所有必需的值是否存在
INSERT
——所以我想選擇一個列not null
列表從我將要插入的表中。not null
由於表定義可能會更改,我想這樣做而不是使用靜態列表,因此如果添加了新列,腳本不會中斷。有沒有辦法從 DB2 查詢中獲取這些值,也許反對
syscat
?VERSIONNUMBER VERSIONTIMESTAMP AUTHID VERSIONBUILDLEVEL ------------------------------------------------------- 10010400 2016-12-03 16:46:01.509317 ADMIN s140509
如果您在 LUW 上,您可以使用以下視圖
syscat.columns
:對於某個表:
select colname from syscat.columns where tabschema = 'DB2INST1' and tabname = 'STAFF' and nulls = 'N' order by colno;
根據IBM DB2 UDB for iSeries SQL Reference V5R3 文件,
SYSCOLUMNS
視圖包含一IS_NULLABLE
列。DB2 for z/OS 10有一
NULLS
列指示表中的列是否可以為SYSIBM.SYSCOLUMNS
空潛在地,
SYSCAT.COLUMNS
可能有IS_NULLABLE
orNULLS
列。我不是 DB2 專家,所以這可能適用於您的系統,也可能不適用於您的系統。