oralce動態維護資料庫的序列
create or replace procedure SYNCSEQ is
MAX_ID NUMBER(12);
P_SEQ_NUM NUMBER(12);
P_TABLE_NAME VARCHAR2(50);
P_COLUMN VARCHAR2(50);
P_SQL VARCHAR2(500);
P_SEQ_SQL VARCHAR2(5000);
P_SYN_SQL VARCHAR2(5000);
P_COUNT NUMBER(2);
--同步seq
CURSOR C_CONS IS SELECT c.table_name,c.column_name FROM user_cons_columns c WHERE (c.constraint_name,c.table_name) IN (
SELECT S.constraint_name,s.table_name FROM user_constraints s WHERE
(s.table_name LIKE 'BASE%' OR s.table_name LIKE 'BD%'
OR s.table_name LIKE 'CS%' OR s.table_name LIKE 'FM%' OR s.table_name LIKE 'ES%')
AND s.constraint_type='P');
begin
FOR P_C_CONS IN C_CONS LOOP
P_TABLE_NAME:=P_C_CONS.TABLE_NAME;
P_COLUMN:=P_C_CONS.COLUMN_NAME;
P_SQL:='SELECT MAX('||P_COLUMN||') FROM '||P_TABLE_NAME;
dbms_output.put_line(P_SQL);
execute immediate p_sql INTO MAX_ID;--USING MAX_ID;
--判斷序列是否存在
SELECT COUNT(1) INTO P_COUNT FROM user_objects WHERE object_name = 'SEQ_'||P_TABLE_NAME;
IF P_COUNT>0 THEN
P_SEQ_SQL:='select seq_'||P_TABLE_NAME||'.nextval from dual';
dbms_output.put_line(P_SEQ_SQL);
execute immediate P_SEQ_SQL INTO P_SEQ_NUM;
dbms_output.put_line('P_SEQ_NUM:'||P_SEQ_NUM||'+++MAX_ID:'||MAX_ID);
IF P_SEQ_NUM
dbms_output.put_line('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
P_SYN_SQL:='alter sequence SEQ_'||P_TABLE_NAME||' increment by '||MAX_ID||' nocache';
dbms_output.put_line(P_SYN_SQL);
execute immediate P_SYN_SQL;
--P_SYN_SQL:='select SEQ_'||P_TABLE_NAME||'.nextval from dual';
--dbms_output.put_line(P_SYN_SQL);
--execute immediate P_SYN_SQL;
--P_SYN_SQL:='alter sequence SEQ_'||P_TABLE_NAME||' increment by 1 cache 20';
--dbms_output.put_line(P_SYN_SQL);
--execute immediate P_SYN_SQL;
dbms_output.put_line('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
END IF;
END IF;
END LOOP;
end SYNCSEQ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25261409/viewspace-1058983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫自動維護任務的管理資料庫
- 維護資料庫安全資料庫
- 物料主資料的維護狀態
- 資料庫常用維護命令資料庫
- Oracle資料庫日常維護Oracle資料庫
- 六、資料庫管理與維護資料庫
- Oracle資料庫維護的重要性Oracle資料庫
- Oracle資料庫中索引的維護 ztOracle資料庫索引
- Oracle資料庫中索引的維護(zt)Oracle資料庫索引
- Oracle資料庫中索引的維護(轉)Oracle資料庫索引
- ORACLE資料庫管理維護綱要Oracle資料庫
- Oracle資料庫中索引的維護 (轉帖)Oracle資料庫索引
- Oralce 資料庫的災難恢復(轉)資料庫
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- 【轉】Oracle資料庫日常維護手冊Oracle資料庫
- Informix_on_line資料庫維護技巧ORM資料庫
- PostgreSQL學習手冊(資料庫維護)SQL資料庫
- Oracle資料庫日常維護手冊 (zt)Oracle資料庫
- dataguard系列之六------備用資料庫的維護資料庫
- 【Oracle】Oracle 11g 中的自動資料庫維護任務管理Oracle資料庫
- Access資料庫日常維護和Access資料庫最佳化方法資料庫
- oralce資料庫建立dblink連結資料庫
- ORACLE資料庫日常維護知識總結Oracle資料庫
- Oracle資料庫維護常用SQL語句集合Oracle資料庫SQL
- UT 資料庫日常維護指導手冊資料庫
- ORACLE資料庫日常維護的九大知識點Oracle資料庫
- Oracle資料庫維護常用的SQL程式碼示例(zt)Oracle資料庫SQL
- 資料維護和基礎架構維護-有感架構
- 資料庫啟動的不同狀態資料庫
- 資料庫動態脫敏資料庫
- 維護樹狀資料
- SGU 277 Heroes(動態凸包維護)
- Oracle資料庫密碼檔案的使用和維護(轉)Oracle資料庫密碼
- 資料庫維護常用操作命令1--約束資料庫
- 啟用enable restricted對資料庫進行維護REST資料庫
- 資料庫維護常用操作命令2--約束資料庫
- 資料庫維護常用操作命令1-表操作資料庫
- Informix Online資料庫日常管理及維護ORM資料庫