oracle 数据更新procedure 模板

适用数据更新,比如通过视图计算出来的数据更新到数据表中,
实际应用场景为: 通过视图进行数据处理,每次访问数据视图,响应时间非常长,把计算的出来的数据更新到表中,然后访问表数据,提高响应速度。

create or replace procedure INSERT_SAPMID_MM_MSEG is
begin

  MERGE INTO SAPMID_T_MM_MSEG AA    --此处填写要更新的表明
  USING (  --括号内未每次更新的数据
  select (T.MJAHR || T.MBLNR || T.ZEILE)                        AS ZKEY,
        T.MANDT,
        T.MBLNR,
        T.MJAHR,
        T.ZEILE,
        M.BTEXT,                                                        --移动类型描述
        SYSDATE                                                AS UP_TIME
           from MSEG@SAPMID t
           LEFT JOIN T156T@SAPMID M
             ON M.SPRAS = '1'
            AND T.BWART = M.BWART
              LEFT JOIN MBEW@SAPMID N
             ON N.MATNR = T.MATNR AND N.BWKEY ='XZ01' AND N.BWTAR =' '
          where T.WERKS = 'XZ01'
            AND TO_CHAR(T.CPUDT_MKPF || ' ' || T.CPUTM_MKPF) >
                TO_CHAR(SYSDATE - 8 / 24, 'YYYYMMDD HHMISS')   --通过时间来检索要更新的数据,此表达式标识更新最近8个小时的数据
                ) BB
  ON (AA.ZKEY = BB.ZKEY)   --表要设置唯一值用来检查是否已经存在表中,接下来会做 如果存在表中,则更新,如果不在表中,则进行插入
  WHEN MATCHED THEN
    UPDATE
       SET AA.MANDT      = BB.MANDT,
           AA.MBLNR      = BB.MBLNR,
           AA.MJAHR      = BB.MJAHR,
           AA.ZEILE      = BB.ZEILE,
           AA.BTEXT      = BB.BTEXT,
           AA.UP_TIME    = BB.UP_TIME
  WHEN NOT MATCHED THEN
    INSERT
    VALUES
      (BB.ZKEY,
       BB.MANDT,
       BB.MBLNR,
       BB.MJAHR,
       BB.ZEILE,
       BB.BTEXT,
       BB.UP_TIME);
  COMMIT WORK;
end INSERT_SAPMID_MM_MSEG;

相关推荐

  1. oracle 数据更新procedure 模板

    2024-07-10 19:14:05       20 阅读
  2. OracleProcedure sql%notfound

    2024-07-10 19:14:05       59 阅读
  3. nodejs连接oracle批量更新数据测试

    2024-07-10 19:14:05       24 阅读
  4. Oracle数据库模式对象

    2024-07-10 19:14:05       19 阅读
  5. Hudi Spark Sql Procedures 回滚 Hudi 表数据

    2024-07-10 19:14:05       25 阅读
  6. MySQL模块---更新和删除数据

    2024-07-10 19:14:05       35 阅读
  7. Mysql旧数据处理常用sql模板·持续更新...

    2024-07-10 19:14:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 19:14:05       50 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 19:14:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 19:14:05       43 阅读
  4. Python语言-面向对象

    2024-07-10 19:14:05       54 阅读

热门阅读

  1. 【LeetCode 0050】【分治/递归】求x的n次方

    2024-07-10 19:14:05       20 阅读
  2. Qt图形编辑类使用总结—正在编辑中

    2024-07-10 19:14:05       12 阅读
  3. Spring Boot与Apache Kafka Streams的集成

    2024-07-10 19:14:05       19 阅读
  4. uniapp 封装瀑布流组件

    2024-07-10 19:14:05       20 阅读
  5. ubuntu22安装Docker并配置

    2024-07-10 19:14:05       17 阅读
  6. 在Ubuntu上用Docker轻松实现GPU加速的TensorFlow

    2024-07-10 19:14:05       22 阅读
  7. Dockerfile 怎么在shell脚本中启动

    2024-07-10 19:14:05       20 阅读