常用oracle可重复执行的脚本模板
为保证脚本的可重复执行以及丢失,涉及到数据库环境的移植等,就会使用可重复执行脚本,此处仅提供相关一些模板
说明下:该脚本需要在命令窗口执行,而不是在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可重复执行的脚本模板的更多相关文章
- oracle可重复执行脚本(添加字段)
--添加债券期限字段 declare cn integer; begin cn := 0; select count(*) into cn from user_tab_cols t where t.t ...
- 重复执行shell脚本。
while ((1)); do gclient runhooks; sleep 2; donewhile ((1)); do ifconfig; sleep 1; done
- 如何解决 shell 脚本重复执行的问题
在开发过程中,经常会使用shell脚本去完成定时备份的任务,普遍的做法是通过系统的定时任务定时执行备份脚本 设想这样一种场景,本次备份时间到了,自动执行备份脚本,如果备份比较耗时的话,会一直持续到下一 ...
- java之生成可重复执行的sql脚本
在实际项目开发过程中,sql脚本需要多次执行.而一般的DML和DDL语句一般只能执行一次,再次执行执行时就会报错(操作对应已存在/不存在),所以必须将sql脚本生成可重复执行的.本文共分为4部分:1. ...
- 安装ORACLE高可用RAC集群11g执行root脚本的输出信息
安装ORACLE高可用RAC集群11g执行root脚本的输出信息 作者:Eric 微信:loveoracle11g [root@node1 ~]# /u01/app/oraInventory/orai ...
- flock防止crontab脚本周期内未执行完重复执行(转)
如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突.而比较糟的情况是可能该脚本在执行周期内没有完成,接着第二个脚本又开始运行了.如何确保只有一个脚本实例运行呢?一个好用 ...
- InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法
简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...
- Oracle命令行模式,批量执行SQL脚本
由于项目不同,使用的数据库也不一样,通常MySQL 比较方便简介,相对而言Oracle比较繁琐一点,尤其是堡垒机的连接的时候, 通过堡垒机登陆,数据库服务器,通过下面的脚本执行进入到命令行模式执行SQ ...
- mysql 重复执行创建表、新增字段脚本
#bigint 可重复执行创建表脚本 1 Create Table If Not Exists `库名`.`表名`( 2 字段列表 3 ) ENGINE=InnoDB DEFAULT CHARSET= ...
随机推荐
- anaconda的使用总结
致python初学者:Anaconda入门使用指南 http://python.jobbole.com/87522/ Anaconda使用总结 http://python.jobbole.com/86 ...
- C++ for循环语句
#include "pch.h" #include<iostream> using namespace std; int main() { int i = 1, sum ...
- PAT 1144 The Missing Number
1144 The Missing Number (20 分) Given N integers, you are supposed to find the smallest positive in ...
- prefixspan是挖掘频繁子序列,子序列不一定是连续的,当心!!!
序列模式挖掘是从序列数据库中发现频繁子序列作为模式. 子序列与频繁序列 了解了序列数据的概念,我们再来看看上面是子序列.子序列和我们数学上的子集的概念很类似,也就是说,如果某个序列A所有的项集在序列B ...
- Win10安装LoadRunner11
一.下载 地址:http://www.51testing.com/?uid-4827-action-viewspace-itemid-225451 二.安装 本来想写,结果和别人的一样就不写了:htt ...
- JVM中的垃圾回收器及垃圾收集算法描述
首先需要了解下JVM(Java虚拟机)中的内存分配情况: 收集器的介绍: Serial收集器:是最原始的收集器,是单线程的,实现简单,但是在后台收集垃圾的时候,其他的工作线程都会停止,直到垃圾收集线程 ...
- 【Python】Part1 应用1-Netcat
01 简介 netcat的主要功能是通过tcp或udp协议传输读写数据. 下面代码用python编写了tcp客户端,服务端,从而实现上传文件,本地执行命令,反弹shell三种功能. 02 代码 imp ...
- Linux 问题
Loaded plugins: fastestmirror cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.backup wget h ...
- MSRHook与SSDTHook
//方式1:MSR Hook #include <ntifs.h> UINT32 oldaddr = ; UINT32 pidtoprotect = ; PCLIENT_ID pid = ...
- DHCP服务
DHCP服务 DHCP服务(需要dhcp命令):负责ip,掩码,网关地址,DNS地址等自动分发的软件服务 /usr/sbin/dhcpd或/usr/sbin/dhcrelay(中继命令):执行程序 / ...