從Oracle資料庫中批量抓取Trigger指令碼的方法
create directory tmp_dir as '/tmp';
grant read,write on directory tmp_dir to dbmgr;
declare
trg_sql clob;
sql_str varchar2(400);
trg_owner varchar2(30);
trg_name varchar2(50);
file_handle utl_file.file_type;
cursor cur_sql is
select distinct c.trigger_owner,c.trigger_name from dba_trigger_cols c,dba_triggers d where c.column_name in ('FCD','FCU')
and c.table_owner=d.table_owner and c.table_name=d.table_name and c.trigger_owner=d.owner and c.trigger_name=d.trigger_name
and d.triggering_event like '%INSERT%'
and c.table_owner in ('GBSMAN','ACTMAN','VOUDATA')
and c.table_owner||'.'||c.table_name in (
'GBSMAN.CERT_BANK_COL_HIS',
'GBSMAN.BUSINESS_ACTIVITY_INVOICE',
'GBSMAN.EMPLOYEE_WELFARE_POLICY_LIST',
…………
…………
…………
'GBSMAN.CLAIM_SMS'
);
begin
file_handle := utl_file.fopen('TMP_DIR','triggers.sql','a');
open cur_sql;
loop
fetch cur_sql into trg_owner,trg_name;
exit when cur_sql%notfound;
select dbms_metadata.get_ddl('TRIGGER',trg_name,trg_owner) into trg_sql from dual;
--sql_str:='select dbms_metadata.get_ddl(''TRIGGER'','''||trg_name||''','''||trg_owner||''') into trg_sql from dual';
--dbms_output.put_line(dbms_lob.substr(tri_sql,4000));
--dbms_output.put_line(trg_sql);
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,trg_sql);
end IF;
end loop;
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
begin
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
end IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
end;
end;
Link URL: http://hi.baidu.com/ljm0211/blog/item/538e342a7ca9e5185243c191.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-732748/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從Oracle資料庫中匯出SQL指令碼Oracle資料庫SQL指令碼
- ORACLE從資料庫中獲取已存在的TABPLESPACE及INDEX建立指令碼Oracle資料庫Index指令碼
- 指令碼建立Oracle的資料庫指令碼Oracle資料庫
- 通過shell指令碼批量操作mysql資料庫指令碼MySql資料庫
- 批量刪除Oracle資料庫的資料Oracle資料庫
- 利用python指令碼(xpath)抓取資料Python指令碼
- oracle資料庫資料備份成文字的指令碼Oracle資料庫指令碼
- oracle 資料庫中壞塊概念和檢查指令碼Oracle資料庫指令碼
- Win10電腦利用oracle生成新建資料庫指令碼的方法Win10Oracle資料庫指令碼
- 監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- 【Oracle指令碼】-很不錯的Windows下資料庫備份EXP指令碼Oracle指令碼Windows資料庫
- 【SCRIPT】Oracle資料庫基本資訊收集指令碼Oracle資料庫指令碼
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- Oracle多例項資料庫備份指令碼Oracle資料庫指令碼
- oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- Oracle 資料庫管理指令碼命名規範Oracle資料庫指令碼
- [轉]監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- 監控Oracle資料庫效能的指令碼段整理Oracle資料庫指令碼
- 監控Oracle資料庫的常用shell指令碼(轉)Oracle資料庫指令碼
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- Elasticsearch批量匯入資料指令碼(python)Elasticsearch指令碼Python
- ibatis對oracle資料庫的批量更新和批量插入的操作BATOracle資料庫
- 資料庫環境中的shell指令碼應用資料庫指令碼
- oracle trigger 同步資料Oracle
- oracle 資料庫徹底清除目錄指令碼Oracle資料庫指令碼
- (轉)oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- Oracle 資料庫管理指令碼命名規範(轉)Oracle資料庫指令碼
- Redis從檔案中批量插入資料Redis
- oracle刪除超過N天資料指令碼的方法Oracle指令碼
- 幾個重要的指令碼來監控Oracle資料庫指令碼Oracle資料庫
- 【轉載】監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- trac 平臺從 PG 資料庫轉到sqlite 的指令碼。資料庫SQLite指令碼
- Oracle批量建立、刪除資料庫表Oracle資料庫
- oracle 資料庫密碼中包括@Oracle資料庫密碼
- Oracle中大批量刪除資料的方法Oracle
- Oracle:從SQL檔案批量匯入資料OracleSQL
- 批量改名的指令碼指令碼
- Shell指令碼中執行sql語句操作MySQL資料庫的幾個方法指令碼MySql資料庫