1、oracle11g預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。2、設定deferred_segment_creation 引數為false後,無論是空表還是非空表,都分配segment。
在sqlplus中,執行如下命令:
sql>alter system set deferred_segment_creation=false;
檢視:sql>show parameter deferred_segment_creation;
該值設定後只對後面新增的表產生作用,對之前建立的空表不起作用。
3、可以使用手工為空表分配extent的方式,來解決匯出之前建立的空表的問題。說明如下:
3.1 使用allocate extent的說明
使用allocate extent可以為資料庫物件分配extent。其語法如下:
-----------
allocate extent
-----------
可以針對資料表、索引、物化檢視等手工分配extent。
allocate extent使用樣例:
allocate extent
allocate extent(size integer [k | m])
allocate extent(datafile 'filename')
allocate extent(instance integer)
allocate extent(size integer [k | m] datafile 'filename')
allocate extent(size integer [k | m] instance integer)
針對資料表操作的完整語法如下:
-----------
alter table [schema.]table_name allocate extent [()]
-----------
故,需要構建如下樣子簡單的sql命令:
-----------
alter table atabelname allocate extent
-----------
3.2 構建對空表分配空間的sql命令,
查詢當前使用者下的所有空表(乙個使用者最好對應乙個預設表空間)。命令如下:
-----------
sql>select table_name from user_tables where num_rows=0;
-----------
根據上述查詢,可以構建針對空表分配空間的命令語句,如下:
-----------
sql>select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
-----------
批量輸出上述生成的sql語句,建立c:\createsql.sql,其內容如下:
-----------
set heading off;
set echo off;
set feedback off;
set termout on;
spool c:\allocate.sql;
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off;
-----------
執行c:\createsql.sql,命令如下:
-----------
sql>@ c:\createsql.sql;
-----------
執行完畢後,得到c:\allocate.sql檔案。
開啟該檔案會看到,已經得到對所有空表分配空間的命令sql語句。
3.4 執行sql命令,對空表分配空間:
執行c:\allocate.sql,命令如下:
-----------
sql>@ c:\allocate.sql;
-----------
執行完畢,表已更改。
3.4 此時執行exp命令,即可把包括空表在內的所有表,正常匯出。
另外:oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區分大小寫的。
在oracle10g中及以前,密碼中的字母大小寫無所謂。
oracle資料庫死鎖解決
進入oracle使用者 su oracle 進入dba模式 sqlplus as sysdba 1.查詢被鎖的情況 select object name,machine,s.sid,s.serial from v locked object l,dba objects o v session s w...
ORACLE資料庫表的操作
一下是對oracle資料庫表的一些操作語句 已經建好的表新增字段 alter table tablename add column1 varchar2 20 default y column2 number 7 2 刪除字段 alter table tablename drop column ass...
Oracle 資料庫中的表
oracle 資料庫中的表 使用者定義的表 使用者自己建立並維護的一組表 包含了使用者所需的資訊 資料字典 由oracle server自動建立的一組表 包含資料庫資訊 select table name from user tables select distinct object type fr...