【原創】匯出所有物件(表、索引、檢視、同義詞)的建立指令碼
1.建立目錄utl_dir用於存放匯出的建立指令碼
create or replace directory utl_dir as 'd:\';
2.給所有使用者賦予讀寫utl_dir的許可權
grant write,read on directory utl_dir to public;
3.建立儲存過程,用來匯出單個物件的建立指令碼
create or replace procedure exportddl(p_type varchar2,p_name varchar2,p_filename varchar2) is
begin
declare
l_file utl_file.file_type;
l_buffer varchar2(100);
l_amount binary_integer := 100;
l_pos integer := 1;
l_clob clob;
l_clob_len integer;
begin
select dbms_metadata.get_ddl(upper(p_type),p_name)||';' into l_clob from dual;
l_clob_len := dbms_lob.getlength(l_clob);
l_file := utl_file.fopen('UTL_DIR', p_filename||'.sql', 'a', 2000);
while l_pos < l_clob_len loop
dbms_lob.read(l_clob, l_amount, l_pos, l_buffer);
utl_file.put_line(l_file, l_buffer);
l_pos := l_pos + l_amount;
end loop;
utl_file.fclose(l_file);
end;
end exportddl;
4.建立儲存過程,用來匯出所有物件(表、索引、檢視、同義詞)的建立指令碼
create or replace procedure exportddl_all(p_filename varchar2) is
begin
for x in (select table_name from user_tables) loop
exportddl('TABLE',x.table_name,p_filename);
end loop;
for x in (select index_name from user_indexes) loop
exportddl('INDEX',x.index_name,p_filename);
end loop;
for x in (select view_name from user_views) loop
exportddl('VIEW',x.view_name,p_filename);
end loop;
for x in (select synonym_name from user_synonyms) loop
exportddl('SYNONYM',x.synonym_name,p_filename);
end loop;
end exportddl_all;
5.使用過程匯出scott使用者所有物件的建立指令碼
conn scott/tiger
exec exportddl_all('123');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/498744/viewspace-277830/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫物件、表空間、表、檢視、索引、同義詞序列等的字典資料庫物件索引
- 批量匯出建立索引的指令碼索引指令碼
- 匯出Oracle中的同義詞Oracle
- oracle學習筆記(十四) 資料庫物件 索引 檢視 序列 同義詞Oracle筆記資料庫物件索引
- 匯出oracle公有同義詞Oracle
- set unused column和檢視,約束,同義詞和索引的關係索引
- 物件、同義詞和公有同義詞順序選取物件
- 授權訪問使用者的所有表.、批量建立和表名一致的同義詞
- Oracle基礎 12 物件 objects 同義詞/序列/試圖/索引Oracle物件Object索引
- 通過impdp匯出索引指令碼索引指令碼
- 通過建立檢視及同義詞方式實現普通使用者查詢X$基表的方法
- Oracle同義詞建立方法Oracle
- 使用datapump 匯出匯入同義詞(export and import synonym using datapump)ExportImport
- 動態建立檢視指令碼指令碼
- mysql 建立索引的方法--建立檢視MySql索引
- Oracle同義詞建立方法(轉)Oracle
- SQLServer訪問Oracle(通過同義詞-檢視-資料字典)出現的問題SQLServerOracle
- 表統計資訊匯出匯入指令碼指令碼
- mysql檢視錶建立的索引MySql索引
- 6.5. 常用物件——6.5.4. 同義詞物件
- 實驗:用檢視加同義詞實現資料安全
- 自定義檢視指令
- mysql建立索引和檢視MySql索引
- 【原創】建立DDL觸發器捕捉schema所有物件改變的記錄觸發器物件
- 【Oracle】-【同義詞】-public與非public同義詞Oracle
- postgresql如何檢視所有表SQL
- 如何匯出MySQL索引的建立語句MySql索引
- 【Mongo】MongoDB索引管理-索引的建立、檢視、刪除MongoDB索引
- 批量的遷移一個資料庫上某使用者所有表的同義詞資料庫
- 如何匯出儲存過程、函式、包和觸發器的定義語句?如何匯出表和索引的建立語句?儲存過程函式觸發器索引
- Oracle之處理synonym同義詞無效物件Oracle物件
- 自定義例外 + 建立檢視
- expdp 匯出指令碼指令碼
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- Laravel 通過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- 工廠模式建立物件和自定義建構函式建立物件的異同模式物件函式
- oracle統計表的所有行數(原創)Oracle
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼