pl sql批量匯出建立索引的指令碼

2021-09-01 22:46:08 字數 899 閱讀 6783

有同事要匯出乙個資料庫使用者下建立索引的指令碼,然後拿到另外乙個庫裡面去執行。很少有這樣的需求,問了一下,他們要進行資料遷移,在新的庫中要求索引單獨放在乙個表空間裡面,於是就把所有的索引都刪除了,進行重建。

本來這個可以用如下方法來實現:

alter

index

index_name rebuild tablespace tbs_name;

既然索引已經刪除了,就需要從原資料庫中匯出建立索引的指令碼,索引是依附於表而存在的,沒有辦法用exp/expdp工具單獨匯出建立索引的指令碼,不過我們可以通過如下方法進行:

1 生成批量匯出索引的語句

在sqlplus中執行spool create_create_index.

sqlselect

'select dbms_metadata.get_ddl('

'index'

', '

||''

''|| index_name||

''''

||') from dual;'

from

user_indexes ;spool off

2 生成建立索引的sql語句

在sqlplus中執行spool create_index.

sql@create_create_index.

sqlspool off

得到b.sql檔案中即為建立索引的語句

3 建立索引

在sqlplus中執行@create_index.

sql

另外,如果用的是expdp遷移的話,在impdp的時候有乙個sqlfile引數,可以生成所有的ddl,這也包括所有的create index語句,但這個方法需要有expdp檔案,另外需要在所有的ddl中選出相應的create index語句,相對以上方法較為複雜。

Unity 匯出Assetbundle的指令碼

今天檢視了一下如何打包資源assetbundle 的東西 現在粘上 分開打包 把project 檢視中包含的資源一一打包 打包為乙個資源包 打包pc平台的資源包檔案 menuitem assets build assetbundle from selection to buildtarget is ...

如何使用PL SQL工具批量匯出表 儲存過程 序列

plsql作為oracle資料庫進行操作常用工具,可以很方便的對錶以及資料進行處理。工作中如果遇到資料庫轉移,需要將老資料庫中的建表 建序列和儲存過程語句匯出,然後匯入到新的資料庫中這樣序列號會自動,繼續使用原來的序列號。小編介紹下如何使用pl sql工具批量匯出建表指令碼 儲存過程 序列指令碼?首...

Oracle批量建立使用者和匯入匯出的指令碼

sql 在cmd下執行 select exp username username file d username dmp owner username log d username txt fromdba users whereaccount status open 在被匯出庫執行,獲取語句後在匯出...