91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 11g不能導出空表的多種解決方法

發布時間:2020-07-24 00:55:21 來源:網絡 閱讀:3769 作者:M_ling 欄目:關系型數據庫

空表不能導出的問題:

查資料發現Oracle 11g中有個新特性:新增了一個參數“deferred_segment_creation”含義是段延遲創建,默認是true

具體是什么意思呢?

deferred_segment_creation,即建立表的時候,這個表不會立即分配extent,也就是不占數據空間,即表也不分配segment以節省空間。直接在字典中記錄了數據結構。而只有當真正有數據的時候才分配空間。這種方法對于象SAP這樣大的系統需要部署成千上萬張表是非常有效的。默認是開啟的為ture,需要關閉alter system set deferred_segment_creation=false;

在系統表user_tables中也可以看到segment_treated的字段里是“NO”或者“YES”說明了某張表是否分配了segment

用下面的SQL語句查詢,可以發現沒有導出的表其 segment_created 字段值都是 'NO'

Select segment_created,table_name from user_tables where segment_created = 'NO';

解決方案:

1、最原始最笨的辦法(不推薦):insert一行,再rollback或者刪除就產生segment了。

該方法是在在空表中插入數據,再刪除,則產生segment。導出時則可導出空表。

 

2、設置deferred_segment_creation 參數:

   設置deferred_segment_creation 參數為FALSE來禁用"段推遲創建"(也就是直接創建segment),無論是空表還是非空表,都分配segment

   sqlplus中,執行如下命令:

SQL>alter system set deferred_segment_creation=false;

查看:

SQL>show parameter deferred_segment_creation;

   注意:該值設置后只對后面新增的表產生作用,對之前建立的空表(已經存在的)不起作用,仍不能導出。

   并且要重新啟動數據庫,讓參數生效。

 

3、使用ALLOCATE EXTENT,可以導出之前已經存在的空表。

使用ALLOCATE EXTENT可以為數據庫對象的每一張表分配Extent(注意針對每一張表,就是說一張表需要一條SQL代碼),但要是每一張表寫一條語句的話太過麻煩,為了方便我們使用SQL命令拼寫出每一張表的alter語句。

 

構建對空表分配空間的SQL命令。

查詢當前用戶下的所有空表(一個用戶最好對應一個默認表空間)。命令如下:

   SQL>select table_name from user_tableswhere NUM_ROWS=0; 

Oracle 11g不能導出空表的多種解決方法


根據上述查詢,可以構建針對空表分配空間的命令語句,如下:

   SQL>Select 'alter table '||table_name||'allocate extent;' from user_tables where num_rows=0 or num_rows is null(注意:很多教程沒有這里,這里是有可能為空的)

Oracle 11g不能導出空表的多種解決方法

上述代碼可產生批量的修改表extentSQL語句(有多少張空表就產生多少條),我們只需要將其生成的所有sql代碼全部執行,就可以給每一張已經存在的表來分配segment,就OK了。 

4、執行對空表分配空間的SQL命令。

alter table WJDCPERSON allocate extent;
alter table VERSION_NUMBER allocate extent;

5、執行完以上命令,然后再用exp的方式去導出數據庫,就可以完整的導出包括空表的數據庫。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴江市| 龙州县| 延川县| 尚义县| 孟州市| 汉沽区| 河北区| 梁河县| 太湖县| 清镇市| 高碑店市| 罗甸县| 安泽县| 广丰县| 阿坝| 抚松县| 花垣县| 罗平县| 米泉市| 佳木斯市| 且末县| 卢龙县| 邢台县| 阿鲁科尔沁旗| 龙山县| 汶川县| 钦州市| 潼南县| 宁德市| 平和县| 阿鲁科尔沁旗| 大余县| 常熟市| 沧州市| 冀州市| 甘泉县| 宜都市| 溧水县| 富平县| 东平县| 丹寨县|