**
oracle取出表里字段值为Null或非空的个数
**
*第一步,建立一个游标,用来存储要检索表的字段。
CURSOR CUR_XXX_COLUMN IS
SELECT
COLUMN_NAME
FROM
USER_TAB_COLUMNS
WHERE
USER_TAB_COLUMNS.TABLE_NAME = 'Table_name'
AND COLUMN_NAME LIKE '%COLUMN%';
[ AND COLUMN_NAME LIKE ‘%COLUMN%’]
这个加不加视实际情况而定,非必须。
*第二步,循环游标,把每列查到的个数累加,最后输出。
FOR CREC IN CUR_XXX_COLUMN LOOP
SQL_STR :='';
SQL_STR :='SELECT COUNT(*) FROM Table_name WHERE '||CREC.COLUMN_NAME||' IS NOT NULL ';
EXECUTE IMMEDIATE SQL_STR INTO CNT_TMP;
RETURN_CNT := RETURN_CNT + CNT_TMP;
END LOOP;
*这是我目前能想到的方法,如果您有更好的方式,可以私聊~