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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫常用維護命令資料庫
- 六、資料庫管理與維護資料庫
- 29. 使用MySQL之資料庫維護MySql資料庫
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- Access資料庫日常維護和Access資料庫最佳化方法資料庫
- (二)oralce資料庫中sys_guid()和newid()資料庫GUI
- 資料庫動態脫敏資料庫
- SGU 277 Heroes(動態凸包維護)
- [MySQL光速入門]029 資料庫管理和維護MySql資料庫
- 資料庫與動態規劃資料庫動態規劃
- ansible自動化運維資料庫運維資料庫
- 1.7. 建立和維護資料庫密碼檔案資料庫密碼
- Databricks 第6篇:Spark SQL 維護資料庫和表SparkSQL資料庫
- SAP RETAIL MM41維護商品主資料的時候可以維護分類資料AI
- 資料庫保護資料庫
- 達夢(DM)資料庫的表空間建立和遷移維護資料庫
- abc344E 維護元素唯一的序列
- 如何設計和維護本地動態IP池?
- restapi(2)- generic restful CRUD:通用的restful風格資料庫表維護工具RESTAPI資料庫
- 【磐維資料庫】透過python訪問磐維資料庫資料庫Python
- 「筆記」對頂堆動態維護中位數筆記
- 達夢資料庫主備實時叢集搭建和維護資料庫
- GaussDB資料庫SQL系列-動態語句資料庫SQL
- 線段樹維護單調棧——區間查詢版本 & 維護遞減序列
- 運維開發裡的資料動態獲取和自動補錄運維
- DistSQL 深度解析:打造動態化的分散式資料庫SQL分散式資料庫
- 時間序列化資料庫選型?時序資料庫的選擇?資料庫
- nodebb搭建 維護 discuz 資料遷移
- 資料庫治理利器:動態讀寫分離資料庫
- RestCloud ETL抽取動態庫表資料實踐RESTCloud
- 【YashanDB資料庫】yasboot查詢資料庫狀態時顯示資料庫狀態為off資料庫boot
- 寫給資料庫運維的兄弟資料庫運維
- Hybris產品主資料的價格折扣維護
- 雙序列動態規劃動態規劃
- 專家觀點∣基於資料驅動的裝置預測性維護
- 圖資料庫驅動的基礎設施運維實操資料庫運維
- MySQL資料庫是什麼?linux資料庫運維MySql資料庫Linux運維
- Oracle的過載保護-資料庫資源限制Oracle資料庫
- 【磐維資料庫】Oracle(透明閘道器)訪問磐維資料庫(PanWeiDB)資料庫Oracle