常用oracle可重復執行的腳本模板


為保證腳本的可重復執行以及丟失,涉及到數據庫環境的移植等,就會使用可重復執行腳本,此處僅提供相關一些模板

說明下:該腳本需要在命令窗口執行,而不是在SQL窗口執行

創建序的腳本

 1 /**
 2  *  作者:zkongbai
 3  *  時間:11-30 09:22:10
 4  *  描述:創建序列【SEQ_ZZ_DOUBLE_RANDOM_TASK】
 5  *  腳本可重復執行
 6  */
 7 PROMPT SEQ_ZZ_DOUBLE_RANDOM_TASK  雙隨機事件腳本 創建序列
 8 DECLARE
 9     FLAG_NUM NUMBER;
10 BEGIN
11     SELECT COUNT(*) INTO FLAG_NUM
12     FROM USER_SEQUENCES ASQ
13     WHERE ASQ.SEQUENCE_NAME = UPPER('SEQ_ZZ_DOUBLE_RANDOM_TASK');
14     IF FLAG_NUM = 0 THEN 
15         EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_ZZ_DOUBLE_RANDOM_TASK MINVALUE 1 MAXVALUE 999999999 START WITH 1 INCREMENT BY 1 CACHE 20'; 
16     END IF;
17 END;
18 /
19 COMMIT;

 

創建表的腳本

 1 /**
 2  *  作者:zkongbai
 3  *  時間:11-21 09:22:10
 4  *  描述:創建表【雙隨機任務,序:SEQ_ZZ_DOUBLE_RANDOM_TASK】
 5  *  腳本可重復執行
 6  */
 7 PROMPT T_ZZ_DOUBLE_RANDOM_TASK 創建表
 8 DECLARE
 9     FLAG_NUM NUMBER;
10 BEGIN
11     SELECT COUNT(*) INTO FLAG_NUM
12     FROM USER_TABLES ATS
13     WHERE ATS.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK');
14     IF FLAG_NUM = 0 THEN
15         EXECUTE IMMEDIATE 'CREATE TABLE T_ZZ_DOUBLE_RANDOM_TASK
16             (
17                 ID              NUMBER(8) not null,
18                 EVENT_ID        NUMBER(8),
19                 JUDGE_COMMENT   VARCHAR2(500),
20                 JUDGE_RESULE    CHAR(1),
21                 JUDGE_PERSON    NUMBER(8),
22                 CREATE_TIME     DATE,
23                 STATUS          CHAR(1),
24                 UPDATE_TIME     DATE,
25                 CREATE_USER_ID  NUMBER(8),
26                 CREATE_ORG_CODE VARCHAR2(32),
27                 CONSTRAINT PK_T_ZZ_DOUBLE_RANDOM_TASK PRIMARY KEY (ID)
28             )';
29         -- ADD COMMENTS TO THE TABLE 
30         EXECUTE IMMEDIATE 'COMMENT ON TABLE T_ZZ_DOUBLE_RANDOM_TASK IS ''雙隨機任務,序:SEQ_ZZ_DOUBLE_RANDOM_TASK'''; 
31         -- ADD COMMENTS TO THE COLUMNS 
32         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.EVENT_ID  IS ''事件ID''';
33         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_COMMENT  IS ''評價意見''';
34         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_RESULE  IS ''評價結果(1:合格,2:不合格)''';
35         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_PERSON  IS ''評價人''';
36         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.STATUS  IS ''狀態.1:有效,0:無效''';
37         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.CREATE_USER_ID  IS ''創建人''';
38         EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.CREATE_ORG_CODE  IS ''創建組織''';
39     END IF;
40 END;
41 /
42 COMMIT;

 

修改字段的腳本

 1 /**
 2  *  作者:zkongbai
 3  *  時間:2018/1/11
 4  *  描述:雙隨機任務添加字段 TASK_TYPE
 5  *  腳本可重復執行
 6  */
 7 PROMPT T_ZZ_DOUBLE_RANDOM_TASK 雙隨機任務添加字段 TASK_TYPE
 8 DECLARE
 9   FLAG_NUM NUMBER;
10 BEGIN
11   SELECT COUNT(*) INTO FLAG_NUM
12   FROM USER_TABLES ATS
13   WHERE ATS.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK');
14   IF FLAG_NUM > 0 THEN
15     SELECT COUNT(*) INTO FLAG_NUM FROM USER_TAB_COLUMNS T 
16     WHERE T.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK') AND T.COLUMN_NAME = UPPER('TASK_TYPE');
17     IF FLAG_NUM=0 THEN
18       EXECUTE IMMEDIATE 'ALTER TABLE T_ZZ_DOUBLE_RANDOM_TASK ADD TASK_TYPE CHAR(1)';
19       -- ADD COMMENTS TO THE COLUMNS 
20       EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.TASK_TYPE  IS ''任務類型: 1或空:市級雙隨機任務,2:鎮街級隨機任務''';
21     END IF;
22   END IF;
23 END;
24 /
25 COMMIT;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM