Db2

如何從 DB2 中選擇 NOT NULL 列

  • February 21, 2021

我有一個針對 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

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0001038.html

對於某個表:

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_NULLABLEorNULLS列。

我不是 DB2 專家,所以這可能適用於您的系統,也可能不適用於您的系統。

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