create or replace procedure ck_null (USERNAME varchar2(30))
DECLARE
USERNAME VARCHAR2(30);
V_SQL VARCHAR2(200);
V_NUM NUMBER;
BEGIN
USERNAME := 'USERNAME'; --输入要查询的用户名
FOR X IN (SELECT TABLE_NAME,COLUMN_NAME FROM DBA_TAB_COLUMNS a WHERE a.owner= USERNAME)
LOOP
V_SQL= 'SELECT COUNT(*) FROM '||X.TABLENAME||' WHERE '||X.COLUMN_NAME|| ' IS NULL';
EXECUTE IMMEDIATE V_SQL INTO V_NUM;
IF V_NUM >0 THEN
DBMS_OUTPUT.put_line(X.TABLE_NAME||'.'||X.COLUMN_NAME);
END IF;
END LOOP;
END ck_null ;
==================================
上面的过程能查出所有用户的字段为null的表和字段来
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13165828/viewspace-607557/ ,如需转载,请注明出处,否则将追究法律责任。