oracle 抽取过程

简介: 确定表含义,字段含义,字典表,和他表是否有关联关系 确定对方数据总量,每日/周/月增长量 确定对方时间戳(递增序列戳) 小知识1:抽取对方1000~2000条数据将其存入新建的txt中,查看所占空间大小,通过等比约估表所...

确定表含义,字段含义,字典表,和他表是否有关联关系

确定对方数据总量,每日//月增长量

确定对方时间戳(递增序列戳)

小知识1:抽取对方1000~2000条数据将其存入新建的txt中,查看所占空间大小,通过等比约估表所占空间大小

小知识2:抽取对方数据时,走索引的不要修改索引列的字段类型

小知识3:第一次抽取历史大数据时,可以不建立目标表索引,以提高抽取速度

 

oracle抽取过程模板


这是依照上图写的抽取过程

PROCEDURE DR_ZYK_ZLGX(PK VARCHAR2, GXLX VARCHAR2) IS

    V_SYSDATE DATE;

    V_PK      VARCHAR2(100);

    V_GXLX    VARCHAR2(100);

    V_COUNT   NUMBER;

    V_ZXZT    VARCHAR2(10);

    V_MAXSJC  DATE;

    V_SJC     DATE;

    V_INSSQL  VARCHAR2(4000);

    V_YSB     VARCHAR2(100);

    V_MBB     VARCHAR2(100);

    V_ERR     VARCHAR2(200);

  BEGIN

    --首先判断增量类型

    V_PK   := PK;

    V_GXLX := GXLX;

    --从表中获取填写内容是否有问题

    SELECT SYSDATE INTO V_SYSDATE FROM DUAL;

    SELECT COUNT(1)

      INTO V_COUNT

      FROM T_LOG_CZGC_SJC T

     WHERE T.PK_VALUE = V_PK

       AND T.GXLX = V_GXLX;

    SELECT T.YSB, T.MBB

      INTO V_YSB, V_MBB

      FROM T_LOG_CZGC_SJC T

     WHERE T.PK_VALUE = V_PK;

    BEGIN

      IF V_COUNT = 1 THEN

        --获取执行状态

        SELECT F_ZXZT(V_PK) INTO V_ZXZT FROM DUAL;

        IF V_ZXZT <> '0' THEN

          BEGIN

            --执行执行'0'

            DR_UP_SJC(V_PK, '0', SYSDATE, '0');

            --查询最大时间戳

            SELECT F_MAXSJC(V_PK) INTO V_MAXSJC FROM DUAL;

            SELECT SJC, INS_SQL

              INTO V_SJC, V_INSSQL

              FROM T_LOG_CZGC_SJC T

             WHERE T.PK_VALUE = V_PK;

          

            --执行SQL语句 

            EXECUTE IMMEDIATE V_INSSQL

              USING V_SJC, V_MAXSJC;

            --更新时间戳

            DR_UP_SJC(V_PK, '1', V_MAXSJC, '1');

            --写入日志

            DR_LOG(V_PK,

                   '1',

                   V_YSB,

                   V_MBB,

                   '',

                   0,

                   V_SJC,

                   V_MAXSJC,

                   V_SYSDATE);          

            --truncate table目标表        

            DR_TRUN(V_PK, '1');          

          EXCEPTION

            WHEN OTHERS THEN            

              V_ERR := SUBSTRB(SQLERRM, 1, 200);

              DR_UP_SJC(V_PK, '2', SYSDATE, '2');

              DR_LOG(V_PK, '2', V_YSB, V_MBB, V_ERR, 0, '', '', V_SYSDATE);

          END;

        ELSE

          NULL;

        END IF;      

      ELSE

        DR_LOG(V_PK,

               '2',

               V_YSB,

               V_MBB,

               '输入命令可能不是ZL',

               0,

               '',

               '',

               V_SYSDATE);

      END IF;    

    EXCEPTION

      WHEN OTHERS THEN

        DR_UP_SJC(V_PK, '2', SYSDATE, '2');

    END;

  END;

防止过程在未完成时,其他应用调用其运行,导致表阻塞;

目录
相关文章
|
4月前
|
消息中间件 关系型数据库 Kafka
实时计算 Flink版产品使用合集之oracle cdc 抽取新增一张表 可以从savepoint恢复吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
存储 NoSQL 关系型数据库
实时计算 Flink版操作报错之抽取Oracle11g时,报错: "Retrieve schema history failed, the schema records for engine ... has been removed",怎么处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
9月前
|
Oracle 关系型数据库 数据库
FlinkCdc抽取Oracle数据时问题求解
FlinkCdc抽取Oracle数据时问题求解
|
Oracle 关系型数据库
oracle 抽取 对方大字段数据
在建设zyk中,经常遇到大字段的数据。 1、建立和对方结构一致的临时表 create global temporary table sjzyk_clob_temp (id varchar2(10),clob_1 clob) on commit delete ...
899 0
|
1月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
1月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
9天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。

推荐镜像

更多