oracle可重复执行脚本写法---总结
来源:互联网 发布:网络爬虫视频 编辑:程序博客网 时间:2024/05/17 03:10
工作中经常要写oracle脚本,而且需要重复执行,因此在此总结一下常用的可重复性脚本的写法,以下都是通过举例子说明。
--1、创建表DECLARE VC_STR VARCHAR2(5000); VN_COUNT NUMBER;BEGIN SELECT COUNT(*) INTO VN_COUNT FROM USER_TABLES WHERE TABLE_NAME = 'TB_BALANCE'; --如果没有则新增表,如果有就不处理 IF VN_COUNT < 1 THEN VC_STR := 'create table TB_BALANCE ( ID NUMBER not null, BILL_TYPE CHAR(1), CORP_SCALE_CODE CHAR(4), INDUSTRY_CODE VARCHAR2(8), BALANCE NUMBER(18,2), END_DATE DATE )'; EXECUTE IMMEDIATE VC_STR; END IF;END;/-- 2增加表字段DECLARE VN_COUNT NUMBER; V_STR VARCHAR2(1000);BEGINselect COUNT(*) INTO VN_COUNT from USER_TAB_COLUMNS where table_name = 'TB_BALANCE' AND COLUMN_NAME = 'CUR_CODE';IF VN_COUNT < 1 THEN V_STR := ' alter table TB_BALANCEadd(CUR_CODE VARCHAR2(50) default ''01'' not null)'; EXECUTE IMMEDIATE V_STR;END IF;END;/--3、判断表bis_acc_his_bal是否已经建有名为PK_BIS_ACC_HIS_BAL的主键,没有则新增DECLARE VN_COUNT NUMBER;BEGIN SELECT COUNT(*) INTO VN_COUNT FROM user_constraints WHERE constraint_type = 'P' and constraint_name = 'PK_BIS_ACC_HIS_BAL' and table_name = 'BIS_ACC_HIS_BAL'; IF VN_COUNT < 1 THEN EXECUTE IMMEDIATE 'alter table bis_acc_his_bal add constraint PK_BIS_ACC_HIS_BAL primary key(BANK_ACC, BAL_DATE)'; END IF; COMMIT; END;/--4、插入数据DECLAREVN_COUNT NUMBER;BEGINSELECT COUNT(*) INTO VN_COUNT FROM TB_BALANCE WHERE FORMULA_CODE = 'GETTOPDKYE';IF VN_COUNT <1 THENINSERT INTO TB_BALANCE(ID, FORMULA_NAME, HELP, FORMULA_CODE)VALUES(NVL((SELECT MAX(ID) + 1 FROM RPT1104_REPORT_FORMULA),1), 'GETTOPDKYE(****)', 'GETTOPDKYE(*****):<br> 参数1:贷款科目的代码<br> 参数2:数据项,1-10<br> 参数3:第几列;包括:客户名称,客户代码,最高风险额,贷款余额<br> 示例:GETTOPDKYE(1303,1,1)<br*********<br>', 'GETTOPDKYE' );END IF; COMMIT;END;/--5、判断表bis_acc_his_bal是否已经建有名为PK_BIS_ACC_HIS_BAL的索引,有则删除DECLARE VN_COUNT NUMBER;BEGIN SELECT COUNT(*) INTO VN_COUNT FROM user_indexes WHERE index_name = 'PK_BIS_ACC_HIS_BAL' and table_name = 'BIS_ACC_HIS_BAL'; IF VN_COUNT >= 1 THEN EXECUTE IMMEDIATE 'drop index PK_BIS_ACC_HIS_BAL'; END IF; COMMIT; END;/
0 0
- oracle可重复执行脚本写法---总结
- oracle可重复执行脚本写法---总结
- oracle可重复执行脚本
- 可重复执行SQL
- 脚本防止重复执行
- sql可重复执行专题
- 防止shell脚本重复执行
- 重复执行命令的脚本
- oracle数据库执行脚本时常用命令总结
- Bash脚本:命令重复执行指定次数
- 按键精灵WQM,怎么重复执行某一脚本?
- flock防止crontab重复执行脚本
- Oracle里的JOB脚本写法
- oracle的job定期执行写法
- oracle的job定期执行写法
- oracle脚本的执行方式
- 后台执行oracle sql脚本
- cmd 执行oracle sql脚本
- 设计模式学习--组合模式,c++代码
- 爱生活爱分享-->爱奇艺、优酷、好莱坞、PPTV等免费资源
- VS2010中检测内存泄露
- TDD之驱动程序和占位程序,和类的接口与实现
- ags infoWindow 应用
- oracle可重复执行脚本写法---总结
- 容器字段FieldContainer
- 狄利克雷过程的五种理解
- 随笔
- Frameset导致Cookies和Session丢失的原因及解决办法
- POJ 2777 Count Color(线段树+位运算)
- leetcode Subsets
- 地图显示实例
- Spring IOC的原理及详解。