Oracle 批量建表空間

lizhihai_99發表於2020-04-05

最近遇到一個問題,就是在資料遷移的時候,要分析一下別人的表結構。當時把別人的庫的表空間,表結構,資料匯出來了一份。回來後要把這些表空間建立到自己庫中,用於分析以前的資料庫。

 

我當時是把使用者的表和表空間匯入到一個csv檔案中,把資料的前1000條匯入dmp中。

 

表有一千多張,表空間有一百多個,要把這一百多個檔案建立起來,要是一個一個的建會累死人,我就想能不能批量去建立表空間。於時我上網查了一下沒有這方面的介紹。後來用了一種方法實現了。下面把這種方法介紹給大家:

 

 

1. 建立一張表,把表空間名匯入到這張表中。

 

 

 create table space_name(

       name varchar2(20)

 )

 

2.把csv中空的表空間名匯入到表中。

 

“Tools” --> "Text Importer"

  

   出現如下的介面:

 

  

 

 點選“紅色區域”按鈕,匯入csv檔案,然後指定owner,表空間,表名,列名,欄位型別。最後點選“Import”按鈕,執行匯入。

 

 3. 執行如下Sql :

 

select 'create tablespace ' || name  || ' DATAFILE ''F:/oracleData/cdcdata/' || name || '01.dbf''  SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;'

from table_space

 

生成所有的建立表空間命令,然後把查詢結果匯出到sql 檔案中,命名為“cdc_tablespaces_sql.sql”。

 

4. 執行 @E:/gavi/cdc_tablespaces_sql.sql,批量建立表空間。

 

 

相關文章