先分析表
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、平利網(wǎng)站維護、網(wǎng)站推廣。
select 'analyze table '||table_name||' compute statistics;' from user_tables;
把查詢結(jié)果依次執(zhí)行
把所有表分析一遍
然后user_tables中就會刷新表的信息
select * from user_tables where num_rows=0;
查出行數(shù)為0的表信息.
select * from all_all_tables
這是查詢Oracle中的所有的表,包括SYS用戶下的,你可以根據(jù)表空間和所屬用戶來限制查詢結(jié)果
where owenr='' and tablespacename=''
想要查出沒數(shù)據(jù)的話,all_all_tables中有個num_rows字段,記錄該表數(shù)據(jù)是多少行的,rows=‘0’的肯定是沒數(shù)據(jù)的,
select * from all_all_tables
where num_rows='0'
and owenr='所屬用戶' and tablespacename='所屬表空間'
即可。
MSSQL不知道
oracle在plsql里執(zhí)行如下代碼:
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('以下為空數(shù)據(jù)表的表名:');
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;
然后點output,顯示的就是空表
select 'select count(*) from ' ||table_name||';' from tabs;
把得到的sql語句拷貝出來執(zhí)行就行了
那你就寫個存儲過程吧
把上邊那句定義成游標(biāo),然后挨個執(zhí)行
執(zhí)行的表名和count(*)插入到自己定義的表里,自己定義的表兩列就夠了,一個是table_name ,一列是count
可以查數(shù)據(jù)字典,select * from user_tables where num_rows=0。不過最好對table_name加一些限制避免行數(shù)過多。
網(wǎng)頁標(biāo)題:oracle如何查詢空表,oracle查詢某列為空的數(shù)據(jù)
文章鏈接:http://www.chinadenli.net/article2/dscogoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站導(dǎo)航、微信小程序、動態(tài)網(wǎng)站、云服務(wù)器、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)