oracle中 查找所有没有数据的表

来源:百度知道 编辑:UC知道 时间:2024/06/25 04:49:00
数据库中,有些表创建以来就没用过,没有数据。
想把这写表查出来。
求sql语句。谢谢
查处了2000多条sql
如何才能一步就查出count(*)为零的呢。
帮我补充一下,谢谢

存储过程怎么写呢?谢谢

select 'select count(*) from ' ||table_name||';' from tabs;

把得到的sql语句拷贝出来执行就行了

那你就写个存储过程吧
把上边那句定义成游标,然后挨个执行
执行的表名和count(*)插入到自己定义的表里,自己定义的表两列就够了,一个是table_name ,一列是count

/*
如下语句可直接列出对应报表:
(若在SQL*PLUS中执行请先输入SET SERVEROUTPUT ON)
*/
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('E