为保证脚本的可重复执行以及丢失,涉及到数据库环境的移植等,就会使用可重复执行脚本,此处仅提供相关一些模板

说明下:该脚本需要在命令窗口执行,而不是在SQL窗口执行

创建序的脚本

 /**
* 作者:zkongbai
* 时间:11-30 09:22:10
* 描述:创建序列【SEQ_ZZ_DOUBLE_RANDOM_TASK】
* 脚本可重复执行
*/
PROMPT SEQ_ZZ_DOUBLE_RANDOM_TASK 双随机事件脚本 创建序列
DECLARE
FLAG_NUM NUMBER;
BEGIN
SELECT COUNT(*) INTO FLAG_NUM
FROM USER_SEQUENCES ASQ
WHERE ASQ.SEQUENCE_NAME = UPPER('SEQ_ZZ_DOUBLE_RANDOM_TASK');
IF FLAG_NUM = 0 THEN
EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_ZZ_DOUBLE_RANDOM_TASK MINVALUE 1 MAXVALUE 999999999 START WITH 1 INCREMENT BY 1 CACHE 20';
END IF;
END;
/
COMMIT;

创建表的脚本

 /**
* 作者:zkongbai
* 时间:11-21 09:22:10
* 描述:创建表【双随机任务,序:SEQ_ZZ_DOUBLE_RANDOM_TASK】
* 脚本可重复执行
*/
PROMPT T_ZZ_DOUBLE_RANDOM_TASK 创建表
DECLARE
FLAG_NUM NUMBER;
BEGIN
SELECT COUNT(*) INTO FLAG_NUM
FROM USER_TABLES ATS
WHERE ATS.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK');
IF FLAG_NUM = 0 THEN
EXECUTE IMMEDIATE 'CREATE TABLE T_ZZ_DOUBLE_RANDOM_TASK
(
ID NUMBER(8) not null,
EVENT_ID NUMBER(8),
JUDGE_COMMENT VARCHAR2(500),
JUDGE_RESULE CHAR(1),
JUDGE_PERSON NUMBER(8),
CREATE_TIME DATE,
STATUS CHAR(1),
UPDATE_TIME DATE,
CREATE_USER_ID NUMBER(8),
CREATE_ORG_CODE VARCHAR2(32),
CONSTRAINT PK_T_ZZ_DOUBLE_RANDOM_TASK PRIMARY KEY (ID)
)';
-- ADD COMMENTS TO THE TABLE
EXECUTE IMMEDIATE 'COMMENT ON TABLE T_ZZ_DOUBLE_RANDOM_TASK IS ''双随机任务,序:SEQ_ZZ_DOUBLE_RANDOM_TASK''';
-- ADD COMMENTS TO THE COLUMNS
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.EVENT_ID IS ''事件ID''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_COMMENT IS ''评价意见''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_RESULE IS ''评价结果(1:合格,2:不合格)''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.JUDGE_PERSON IS ''评价人''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.STATUS IS ''状态.1:有效,0:无效''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.CREATE_USER_ID IS ''创建人''';
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.CREATE_ORG_CODE IS ''创建组织''';
END IF;
END;
/
COMMIT;

修改字段的脚本

 /**
* 作者:zkongbai
* 时间:2018/1/11
* 描述:双随机任务添加字段 TASK_TYPE
* 脚本可重复执行
*/
PROMPT T_ZZ_DOUBLE_RANDOM_TASK 双随机任务添加字段 TASK_TYPE
DECLARE
FLAG_NUM NUMBER;
BEGIN
SELECT COUNT(*) INTO FLAG_NUM
FROM USER_TABLES ATS
WHERE ATS.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK');
IF FLAG_NUM > 0 THEN
SELECT COUNT(*) INTO FLAG_NUM FROM USER_TAB_COLUMNS T
WHERE T.TABLE_NAME = UPPER('T_ZZ_DOUBLE_RANDOM_TASK') AND T.COLUMN_NAME = UPPER('TASK_TYPE');
IF FLAG_NUM=0 THEN
EXECUTE IMMEDIATE 'ALTER TABLE T_ZZ_DOUBLE_RANDOM_TASK ADD TASK_TYPE CHAR(1)';
-- ADD COMMENTS TO THE COLUMNS
EXECUTE IMMEDIATE 'COMMENT ON COLUMN T_ZZ_DOUBLE_RANDOM_TASK.TASK_TYPE IS ''任务类型: 1或空:市级双随机任务,2:镇街级随机任务''';
END IF;
END IF;
END;
/
COMMIT;

常用oracle可重复执行的脚本模板的更多相关文章

  1. oracle可重复执行脚本(添加字段)

    --添加债券期限字段 declare cn integer; begin cn := 0; select count(*) into cn from user_tab_cols t where t.t ...

  2. 重复执行shell脚本。

    while ((1)); do gclient runhooks; sleep 2; donewhile ((1)); do ifconfig; sleep 1; done

  3. 如何解决 shell 脚本重复执行的问题

    在开发过程中,经常会使用shell脚本去完成定时备份的任务,普遍的做法是通过系统的定时任务定时执行备份脚本 设想这样一种场景,本次备份时间到了,自动执行备份脚本,如果备份比较耗时的话,会一直持续到下一 ...

  4. java之生成可重复执行的sql脚本

    在实际项目开发过程中,sql脚本需要多次执行.而一般的DML和DDL语句一般只能执行一次,再次执行执行时就会报错(操作对应已存在/不存在),所以必须将sql脚本生成可重复执行的.本文共分为4部分:1. ...

  5. 安装ORACLE高可用RAC集群11g执行root脚本的输出信息

    安装ORACLE高可用RAC集群11g执行root脚本的输出信息 作者:Eric 微信:loveoracle11g [root@node1 ~]# /u01/app/oraInventory/orai ...

  6. flock防止crontab脚本周期内未执行完重复执行(转)

    如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突.而比较糟的情况是可能该脚本在执行周期内没有完成,接着第二个脚本又开始运行了.如何确保只有一个脚本实例运行呢?一个好用 ...

  7. InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法

    简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...

  8. Oracle命令行模式,批量执行SQL脚本

    由于项目不同,使用的数据库也不一样,通常MySQL 比较方便简介,相对而言Oracle比较繁琐一点,尤其是堡垒机的连接的时候, 通过堡垒机登陆,数据库服务器,通过下面的脚本执行进入到命令行模式执行SQ ...

  9. mysql 重复执行创建表、新增字段脚本

    #bigint 可重复执行创建表脚本 1 Create Table If Not Exists `库名`.`表名`( 2 字段列表 3 ) ENGINE=InnoDB DEFAULT CHARSET= ...

随机推荐

  1. GIS开发 图形常见算法

    摘录:OSGeo中国中心 http://www.osgeo.cn/post/ae457 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简 ...

  2. 简易OA漫谈之工作流设计(一个Demo),完成6年前的一个贴子

    6年前在腾讯做OA,那时写了两篇心得. https://www.cnblogs.com/wangxiaohuo/archive/2012/08/22/2650893.html https://www. ...

  3. [CentOS] 环境变量设置的三种方法

    在CentOS系统中添加环境变量的方法有几种,推荐第三种方法.这里以添加 TexLive 2017 的环境变量为例进行说明. 1. 修改  ~/.bash_profile  文档,在文末添加以下代码: ...

  4. REST(Representational state transfer)的四个级别以及HATEOAS介绍

    Rest RES(Representational state transfer):表现层状态转移.其实它省略了主语,「表现层」其实指的是「资源」的「表现层」,所以通俗来讲就是:资源在网络中以某种表现 ...

  5. Ubuntu18.04下安装搜狗输入法

    Ubuntu18.04下安装搜狗输入法 第一步:安装 fcitx输入框架 sudo apt-get install fcitx 第二步:在官网下载 Linux 版本搜狗输入法 https://piny ...

  6. Qt 分页标题打印

    void ItemSplitter::printpdf(const QString& fileName){ QPrinter printer_html(QPrinter::ScreenReso ...

  7. history program(language)

    1950与1960年代 有三个现代编程语言于1950年代被设计出来,这三者所衍生的语言直到今日仍旧广泛地被采用: Fortran (1955),名称取自"FORmula TRANslator ...

  8. Tikhonov regularization 吉洪诺夫 正则化

    这个知识点很重要,但是,我不懂. 第一个问题:为什么要做正则化? In mathematics, statistics, and computer science, particularly in t ...

  9. kaliLinux 安装 telnet

    一.安装xinetd telnetd root@helm:~# apt-get install xinetd telnetd 二.查看服务是否启动状态 说明自启动了 如果没有需要启动xinetd,启动 ...

  10. eclipse Android项目 DDMS db文件 导出 Failed to pull selection null 问题

    我在 eclipse的Android项目中,在 DDMS导出db文件 时,发现报错:Failed to pull selection null 在左侧选中设备,在进行导出 这样就可以正常的进行导出db ...