日期:2014-05-17  浏览次数:20987 次

请问如何找出数据库中存在空记录的表
如题:请问如何找出数据库中存在空记录的表.

------解决方案--------------------
SQL code

--output显示空表
DECLARE 
v_table tabs.table_name%TYPE; 
v_sql VARCHAR2(888); 
v_q NUMBER; 
CURSOR c1 IS 
SELECT table_name tn FROM tabs; 
TYPE c IS REF CURSOR; 
c2 c; 
BEGIN 
DBMS_OUTPUT.PUT_LINE('以下为空数据表的表名:'); 
FOR r1 IN c1 LOOP 
v_table :=r1.tn; 
v_sql :='SELECT COUNT(*) q FROM '||v_table; 
OPEN c2 FOR v_sql; 
LOOP 
FETCH c2 INTO v_q; 
EXIT WHEN c2%NOTFOUND; 
IF v_q=0 THEN 
DBMS_OUTPUT.PUT_LINE(v_table); 
END IF; 
END LOOP; 
CLOSE c2; 
END LOOP; 
EXCEPTION 
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error occurred'); 
END;

------解决方案--------------------
--6、Oracle中每个用户表的表名和行数

select table_name,num_rows from user_tables
where num_rows = 0;
------解决方案--------------------
有这么麻烦? 试试这个

SQL code

select table_name,num_rows from user_tables where num_rows<=0