十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
執(zhí)行?alter?table?tablename?allocate?extent;?就可以導(dǎo)出了。
為隆堯等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及隆堯網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、隆堯網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
參考:
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;
然后點(diǎn)output,顯示的就是空表
之所以不能導(dǎo)出空表,是因?yàn)镺racle默認(rèn)不會(huì)為空表分配segment,應(yīng)對(duì)方法有三個(gè)
1、把deferred_segment_creation這個(gè)參數(shù)設(shè)置為false,這樣新創(chuàng)建任何表都會(huì)自動(dòng)分配segment,這樣用邏輯導(dǎo)出就可以導(dǎo)出空表了,但是注意,在更改這個(gè)設(shè)置之前的空表還是不會(huì)分配segment的
2、可以在創(chuàng)建表的時(shí)候就手動(dòng)分配segment
sqlcreate table TEST (XXX xxx,YYY yyy) segment creation immediate;
3、對(duì)于已經(jīng)存在的空表,可以
sqlalter table TEST allocate extent;
希望能幫到題主!