如何查询一个表中有哪些列全为空

DECLARE 
CURSOR temp IS SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME=Upper('TEST');
v_num NUMBER;
BEGIN
  FOR IN temp 
  LOOP
    execute immediate 'SELECT Count(*) FROM test WHERE '||i.COLUMN_NAME||' IS NOT null' INTO v_num; 
    IF v_num=0 THEN 
      Dbms_Output.put_line('==columns that have no data=='||i.COLUMN_NAME);
    END IF; 
    NULL
  END LOOP;
END;
posted @ 2018-09-06 15:00  lclc  阅读(1082)  评论(0编辑  收藏  举报