執(zhí)行?alter?table?tablename?allocate?extent;?就可以導出了。
為隆堯等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及隆堯網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、隆堯網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
參考:
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,顯示的就是空表
之所以不能導出空表,是因為Oracle默認不會為空表分配segment,應對方法有三個
1、把deferred_segment_creation這個參數(shù)設(shè)置為false,這樣新創(chuàng)建任何表都會自動分配segment,這樣用邏輯導出就可以導出空表了,但是注意,在更改這個設(shè)置之前的空表還是不會分配segment的
2、可以在創(chuàng)建表的時候就手動分配segment
sqlcreate table TEST (XXX xxx,YYY yyy) segment creation immediate;
3、對于已經(jīng)存在的空表,可以
sqlalter table TEST allocate extent;
希望能幫到題主!