首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle中,获得表中所有字段都为null的个数

2012-07-15 
oracle中,取得表中所有字段都为null的个数当表的字段个数很多的时候,取得所有字段都是null的个数字段很少

oracle中,取得表中所有字段都为null的个数
当表的字段个数很多的时候,取得所有字段都是null的个数
字段很少的时候,可以这么写:

DECLARE    TYPE myref IS REF CURSOR;    cur     myref;    sqlStr  VARCHAR2(200);    tb_name VARCHAR2(20);    TYPE arrays IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;    column_array arrays;    null_num     INTEGER;BEGIN    tb_name := 'TB';    sqlStr  := 'SELECT column_name FROM user_tab_columns WHERE table_name = ''' ||               tb_name || '''';    OPEN cur FOR sqlStr;    FETCH cur BULK COLLECT        INTO column_array;    CLOSE cur;    sqlStr := 'SELECT COUNT(*) FROM ' || tb_name || ' WHERE 1=1';    FOR i IN column_array.FIRST .. column_array.LAST LOOP        sqlStr := sqlStr || ' AND ' || column_array(i) || ' IS NULL ';    END LOOP;    EXECUTE IMMEDIATE sqlStr        INTO null_num;    dbms_output.put_line(null_num);END;

热点排行