為保證腳本的可重復執行以及丟失,涉及到數據庫環境的移植等,就會使用可重復執行腳本,此處僅提供相關一些模板
說明下:該腳本需要在命令窗口執行,而不是在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;