从源数据库抽取数据到中间库
来源:互联网 发布:渠道管控管理系统源码 编辑:程序博客网 时间:2024/06/15 00:49
----------------------------------------------------------------------------------------------------------
-- PROCEDURE NAME : PROC_SYN_DATA
-- DESCRIPTION : 同步抽取数据
----------------------------------------------------------------------------------------------------------
IS
cnt INTEGER;
BEGIN
--判断表是否已存在,如果存在先删除
SELECT COUNT(*) INTO cnt FROM USER_TABLES WHERE TABLE_NAME = 'ETL_PRJ_CONTRACTPLANCOSTBILL';
IF cnt >0 THEN
EXECUTE IMMEDIATE 'DROP TABLE ETL_PRJ_CONTRACTPLANCOSTBILL';
DBMS_OUTPUT.PUT_LINE('ETL_PRJ_CONTRACTPLANCOSTBILL表存在,删除成功!');
END IF;
SELECT COUNT(*) INTO cnt FROM USER_TABLES WHERE TABLE_NAME = 'ETL_PRJ_PRJCONTRACT';
IF cnt > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE ETL_PRJ_PRJCONTRACT';
DBMS_OUTPUT.PUT_LINE('ETL_PRJ_PRJCONTRACT表存在,删除成功!');
END IF;
--抽取数据并存储
EXECUTE IMMEDIATE 'CREATE TABLE ETL_PRJ_CONTRACTPLANCOSTBILL AS SELECT * FROM PBYL1030.CT_PRJ_CONTRACTPLANCOSTBILL@eas_220_dblink WHERE CFSTATE IN (''10'', ''25'', ''60'')'; --10:暂存、25:提交、60:生效
EXECUTE IMMEDIATE 'CREATE TABLE ETL_PRJ_PRJCONTRACT AS SELECT * FROM PBYL1030.CT_PRJ_PRJCONTRACT@eas_220_dblink WHERE CFSTATE = ''60'' ';
--增加同步时间字段
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_CONTRACTPLANCOSTBILL ADD (CREATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_CONTRACTPLANCOSTBILL ADD (LAST_UPDATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_PRJCONTRACT ADD (CREATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_PRJCONTRACT ADD (LAST_UPDATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
END PROC_SYN_DATA;
-- PROCEDURE NAME : PROC_SYN_DATA
-- DESCRIPTION : 同步抽取数据
----------------------------------------------------------------------------------------------------------
IS
cnt INTEGER;
BEGIN
--判断表是否已存在,如果存在先删除
SELECT COUNT(*) INTO cnt FROM USER_TABLES WHERE TABLE_NAME = 'ETL_PRJ_CONTRACTPLANCOSTBILL';
IF cnt >0 THEN
EXECUTE IMMEDIATE 'DROP TABLE ETL_PRJ_CONTRACTPLANCOSTBILL';
DBMS_OUTPUT.PUT_LINE('ETL_PRJ_CONTRACTPLANCOSTBILL表存在,删除成功!');
END IF;
SELECT COUNT(*) INTO cnt FROM USER_TABLES WHERE TABLE_NAME = 'ETL_PRJ_PRJCONTRACT';
IF cnt > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE ETL_PRJ_PRJCONTRACT';
DBMS_OUTPUT.PUT_LINE('ETL_PRJ_PRJCONTRACT表存在,删除成功!');
END IF;
--抽取数据并存储
EXECUTE IMMEDIATE 'CREATE TABLE ETL_PRJ_CONTRACTPLANCOSTBILL AS SELECT * FROM PBYL1030.CT_PRJ_CONTRACTPLANCOSTBILL@eas_220_dblink WHERE CFSTATE IN (''10'', ''25'', ''60'')'; --10:暂存、25:提交、60:生效
EXECUTE IMMEDIATE 'CREATE TABLE ETL_PRJ_PRJCONTRACT AS SELECT * FROM PBYL1030.CT_PRJ_PRJCONTRACT@eas_220_dblink WHERE CFSTATE = ''60'' ';
--增加同步时间字段
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_CONTRACTPLANCOSTBILL ADD (CREATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_CONTRACTPLANCOSTBILL ADD (LAST_UPDATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_PRJCONTRACT ADD (CREATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
EXECUTE IMMEDIATE 'ALTER TABLE ETL_PRJ_PRJCONTRACT ADD (LAST_UPDATE_TIME DATE DEFAULT SYSDATE NOT NULL)';
END PROC_SYN_DATA;
阅读全文
0 0
- 从源数据库抽取数据到中间库
- 用Java实现从数据库抽取数据到Xml
- kettle —— 从一个数据库抽取数据到另一个数据库
- 用Java实现从Xml抽取数据到关系型数据库
- 利用talend将数据从orcale抽取,存到hive
- 使用Embulk从Oracle抽取数据到Trafodion
- Sqoop从mysql抽取数据到hive中
- 通过Lotusscript代码从损坏的数据库中抽取数据
- 从Sybase数据库抽取的数据中文乱码
- oracle 从数据库中随机抽取数据 随机数
- 设计案例3----利用存储过程和JOB 设计从餐饮ERP数据库将数据抽取、数据清洗到BI数据库
- 数据加载动画从中间到两侧颜色随机
- 怎样从SQL Server中搜索数据库中的中间数据?
- 从SAP中抽取数据
- Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?
- 用flume-ng-sql-source 从mysql 抽取数据到kafka被storm消费
- 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
- ODI如何通过logminer技术从oracle 数据库中抽取增量数据(一)
- Autolayout中关于intrinsic content、相关优先级及其应用
- getHref:获取A链接指向(面试题)
- 浅谈web站点调优
- 【网络】TCP的三次握手、四次挥手、TIME_WAIT状态
- dubbo 1 ExtensionLoader 插件化
- 从源数据库抽取数据到中间库
- 项目开发技术框架
- linux-安装使用问题汇总
- Oracle常用语句
- kotlin.KotlinNullPointerException
- iOS中TableViewController的cell复用
- Hibernate实战(第二版)笔记----第三章--域模型与元数据
- 机器学习sklearn库的使用--部署环境(python2.7 windows7 64bit)
- wingIDE Pro6 破解教程