CREATE OR REPLACE PROCEDURE STG.FP_REMOVE_MST_OLD_DATA (EXITCODE OUT NUMBER)
IS
/***********************************************************************
** 存储过程名称: FP_REMOVE_OLD_DATA
** 存储过程创建日期:
** 存储过程创建人:
** 目的: 删除FP上次在ODS的输出数据 ** 输入参数:
** 输出参数:EXITCODE 预留接口给外部调用者,让其知道存储过程的执行结果,0.预定逻辑执行完成; 1.遇到异常,预定逻辑未执行完成
** 返回值:
** 用法:
**
** 修订版本:
** 版本号 修订时间 修订人 描述
** --------- ---------- ------------ ------------------------
** 1.0
**
**********************************************************************/
----------------------- 以下定义存储过程使用的变量---------------------------------
V_PKGName VARCHAR2 (40) := 'PKG_FP';
V_ProName VARCHAR2 (40) := 'FP_REMOVE_MST_OLD_DATA';
V_Action VARCHAR2 (1);
V_Step NUMBER := 0;
V_MainTable VARCHAR2 (40);
E_ErrMessage VARCHAR2 (3000); ----------------------- 以下是存储过程的主体------------------------------------------ BEGIN
EXITCODE := 0; DELETE FROM STG.DISABLED_R_CONSTRAINT; INSERT INTO STG.DISABLED_R_CONSTRAINT SELECT CONSTRAINT_NAME from all_constraints where constraint_type='R' and status='DISABLED' AND OWNER='ABPPMGR'; COMMIT; V_Step := V_Step + 1;
V_Action := PKG_CONSTANT.CONS_ACTION_DELETE;
V_MainTable := 'ALL';
PKG_UTIL.CREATELOG (
V_PKGName, --Put package name here
V_ProName, --Put procedure name here
V_Step, --Step seqence No. if have
V_Action, --Action 'I','D','U','T'
PKG_CONSTANT.CONS_MSG_INFO, --Message tppe, 'SUCCESS' or 'EXCEPTION'
'start to delete old data.', --Any generic information here
V_MainTable); --Major table name processed
FOR c_cons_dis
IN (SELECT 'alter table '
|| T2.owner
|| '.'
|| T2.table_name
|| ' disable constraint '
|| t2.CONSTRAINT_NAME
sqltext
FROM all_constraints T2
WHERE t2.owner = 'ABPPMGR'
AND T2.CONSTRAINT_TYPE = 'R'
AND T2.table_name IN
(select phy_mst from abppmgr.SYS_TABLE_MAP))
LOOP
EXECUTE IMMEDIATE c_cons_dis.sqltext;
END LOOP; FOR c_trunc
IN (SELECT 'truncate table ABPPMGR.' || table_name || ' drop storage' sqltext
FROM all_tables
WHERE owner = 'ABPPMGR'
AND table_name IN
('MST_BOMCOMPONENTS',
'MST_ROUTINGOPERATION',
'MST_ROUTINGHEADER',
'MST_BOMHEADER',
'MST_BOMCOMPONENTS_P',
'MST_ITEMMASTER',
'MST_ITEMSITEMASTER',
'MST_ITEMBOMROUTING_P',
'MST_ITEMGROUPMASTER',
'MST_OPRESOURCE',
'MST_ITEMSITEIPPARM',
'MST_APPRSUPITEM',
'MST_UOMCONVERSION',
'MST_ITEMGROUPDETAIL',
'MST_APPRSUPITEM_P',
'MST_ITEMBOMROUTING',
'MST_SUPPLIERCALENDAR',
'PURCHORDLINE',
'INVENTORY',
'INVENTORYPROPERTY',
'SALESORDERLINE',
'SALESORDERLINE_P',
'FORECASTDETAIL'))
LOOP
EXECUTE IMMEDIATE c_trunc.sqltext;
END LOOP; FOR c_cons_en
IN (SELECT 'alter table '
|| T2.owner
|| '.'
|| T2.table_name
|| ' enable novalidate constraint '
|| t2.CONSTRAINT_NAME
sqltext
FROM all_constraints T2
WHERE t2.owner = 'ABPPMGR'
AND T2.CONSTRAINT_TYPE = 'R'
AND T2.table_name IN
(select phy_mst from abppmgr.SYS_TABLE_MAP) AND T2.CONSTRAINT_NAME NOT IN (SELECT CONSTRAINT_NAME FROM STG.DISABLED_R_CONSTRAINT) )
LOOP
EXECUTE IMMEDIATE c_cons_en.sqltext;
END LOOP;
V_Step := V_Step + 1;
V_Action := PKG_CONSTANT.CONS_ACTION_DELETE;
V_MainTable := 'ALL';
PKG_UTIL.CREATELOG (V_PKGName, --Put package name here
V_ProName, --Put procedure name here
V_Step, --Step seqence No. if have
V_Action, --Action 'I','D','U','T'
PKG_CONSTANT.CONS_MSG_INFO, --Message tppe, 'SUCCESS' or 'EXCEPTION'
'remove data completed.', --Any generic information here
V_MainTable);
EXCEPTION
--总程序异常处理部分
WHEN OTHERS
THEN
BEGIN
ROLLBACK;
EXITCODE := 1;
e_ErrMessage :=
SUBSTR (SQLERRM, 1, 1000)
|| SUBSTR (DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 1, 2000);
PKG_UTIL.CREATELOG (V_PKGName,
V_ProName,
V_Step,
V_Action,
PKG_CONSTANT.CONS_MSG_EXCEPTION,
e_ErrMessage,
V_MainTable);
END;
END;
/

循环TRUNCATE表,再ENABLE约束索引等的更多相关文章

  1. truncate有外键约束的表,报ORA-02266处理。

    问题描述:当父表有子表的外键约束时,无法直接truncate父表.报ORA-02266: unique/primary keys in table referenced by enabled fore ...

  2. 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

    1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...

  3. 2-16 MySQL字段约束-索引-外键

    一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...

  4. mysql字段约束-索引-外键---3

    本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符   我们通过这个例子来看看 mysql> create table wo ...

  5. truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件

    有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug ...

  6. 1.mysql表优化和避免索引失效原则

    表优化 1.单表优化 建立索引 根据sql的实际解析顺序建立复合索引 最佳左前缀,保持索引的定义和使用顺序一致 2.多表优化 连接查询 小表驱动大表:对于双层循环来说,外层循环(数据量)越小,内层循环 ...

  7. SQL Server查询性能优化——堆表、碎片与索引(二)

    本文是对 SQL Server查询性能优化——堆表.碎片与索引(一)的一些总结.  第一:先对 SQL Server查询性能优化——堆表.碎片与索引(一)中的例一的SET STATISTICS IO之 ...

  8. SQL 约束 索引

    --约束constraint--not null 非空约束create table demo01(empno number(4),ename varchar2(10) not null,job var ...

  9. SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询

    SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...

随机推荐

  1. idea xml版本修改问题

    STEP 1.选中模块 STEP 2.file---->Project Structure---->Facets---->把相应模块的给删除"-"----> ...

  2. Span<T>和ValueTuple<T>性能是.Net Core非常关键的特性

    Span<T>和ValueTuple<T> 性能是.Net Core一个非常关键的特性,今天我们重点研究一下ValueTuple<T>和Span<T>. ...

  3. 《DSP using MATLAB》Problem 7.10

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  4. 快速排序的两种实现 -- 种轴partition : 比值partition(更精巧)

    实现1:种轴partition,not in place--取定枢轴,将小于等于枢轴的放到枢轴左边,大于枢轴的放到右边 # python algorithm en_2nd edition p125de ...

  5. Eclipse 使用 VS Emulator for android 调试环境配置 步骤

    模拟器启动器地址:C:\Program Files (x86)\Microsoft Emulator Manager\1.0\emulatorcmd.exe 获取模拟器ID命令:emulatorcmd ...

  6. excel 表格粘贴到word 显示不完整

    左上角,十字点,右键,取消固定宽度即可:

  7. Java面向对象 第3节 类的封装和继承

      一.封装 封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作. 封装的2个大致原则:1)把尽可能多的东西隐藏起来,对外提供便捷的接口 ...

  8. 十五、springcloud(一)注册中心Eureka

    1.Eureka的基本架构 a.Eureka Server 提供服务注册和发现 b.Service Provider 服务提供方 将自身服务注册到Eureka,从而使服务消费方能够找到 c.Servi ...

  9. 域名到站点的负载均衡技术一览(主要是探讨一台Nginx抵御大并发的解决方案)(转)https://www.cnblogs.com/EasonJim/p/7823410.html

    一.问题域 Nginx.LVS.Keepalived.F5.DNS轮询,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器,扩充系统的性能 ...

  10. Zookeeper 在Windows下的安装过程及测试

    安装jdk 安装Zookeeper. 在官网http://zookeeper.apache.org/下载zookeeper.我下载的是zookeeper-3.4.6版本. 解压zookeeper-3. ...