日期:2014-05-17 浏览次数:20987 次
--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;
------解决方案--------------------
有这么麻烦? 试试这个
select table_name,num_rows from user_tables where num_rows<=0