`

oracle 存储过程 条件表复制

 
阅读更多


Create or replace procedure MoveDataFromAToB
  is
     --定义变量--
     p_braid  varchar2(40);
     p_merid  varchar2(40);
    
     --定义指针--
     cursor cur_data_AAA
     is
       select braid, merid from aaa_test;
begin
     --遍历指针游标
     for rec_data_AAA in cur_data_AAA
        loop
           --初始化变量--
           p_braid :=null;
           p_merid :=null;
            begin
                --当目的表中存在该主键时,将游标的值赋给变量--
                select  braid, merid
                   into p_braid,p_merid
                   from bbb_test            
                where braid=rec_data_AAA.braid;
               exception
                   when others then
                      --异常处理,说明目标表中没有该主键,将变量初始化为空值--
                                 p_braid :=null;
                                 p_merid :=null;
            end;
           --当目标表中存在该主键时,暂时做标记处理--
           if p_braid is not null then
               if rec_data_AAA.merid=p_merid then
                  update aaa_test
                       set aaa_test.payid='U'
                   where aaa_test.p_braid=rec_data_AAA.p_braid;
               else
                  update bbb_test
                       set bbb_test.merid=rec_data_AAA.merid
                   where aaa_test.braid=rec_data_AAA.p_braid;
               
               end if;
          --当目的表中不存在该主键时,进行插入--
          else
               insert into bbb_test(braid, merid) values(rec_data_AAA.braid,rec_data_AAA.merid);
               update aaa_test
                       set aaa_test.payid='N'
                   where aaa_test.braid=rec_data_AAA.p_braid;
          end if;  
         commit ;
        end loop;
 
exception
   when others then
      rollback;
end MoveDataFromAToB;

分享到:
评论

相关推荐

    oracle存储过程学习经典入门

    Oracle存储过程是数据库管理系统中的一种重要编程工具,它允许开发者编写复杂的SQL和PL/SQL代码块,以便在数据库中执行多次或按需执行。Oracle存储过程的学习经典入门涉及多个核心概念和技术,包括性能调优、数据库...

    oracle存储过程学习

    这里使用了一个特殊的条件`WHERE 1 <> 1`来确保不会从`emp`表中复制任何实际数据,而仅仅复制表结构。这种方式适用于需要快速创建一个空白测试表的情况。 **2. 创建存储过程** 接下来创建一个简单的存储过程`Sal_...

    oracle 存储过程和触发器复制数据

    Oracle数据库中的存储过程和触发器是数据库编程的重要组成部分,它们被广泛用于数据处理、业务逻辑控制以及自动化数据复制。在本场景中,我们探讨的是如何使用存储过程来复制数据,特别是涉及ICP(互联网内容提供商...

    oracle存储过程实例

    ### Oracle存储过程与触发器深度解析 #### 一、触发器概述 触发器,作为Oracle数据库中的重要组件,实质上是一种特殊类型的存储过程,被设计为在特定的数据库操作(如INSERT、DELETE、UPDATE)发生时自动执行。...

    Oracle触发器备份表数据

    触发器是一种存储过程,它与表或视图关联,并在对这些对象执行特定类型的数据库操作(如INSERT、UPDATE、DELETE)时自动执行。触发器可以在数据修改前或后执行,这为实现复杂业务逻辑提供了强大的支持。 #### 如何...

    利用Oracle复制技术的灾备解决方案

    Oracle复制技术是构建高效灾备解决方案的关键组成部分,尤其在存储领域中,它为应对突发灾难提供了数据保护和恢复策略。本文将深入探讨Oracle高级复制的几种主要机制,包括多主复制、可更新快照复制,以及混合配置,...

    oracle9i高级复制实施手记

    7. **Undo表空间**:在Oracle中,Undo表空间存储回滚信息,用于事务的撤销操作。创建新的Undo表空间并将其设置为默认值,有助于优化事务处理和复制性能。切换Undo表空间需要系统停机后再启动,以确保更改生效。 8. ...

    Oracle-AR多主体复制方式在移动通信彩铃业务中的实施.pdf

    这两个数据库在结构上是相同的,都包含错误日志、内部过程、复制表、内部触发器、延迟事务队列以及后台进程(如SMON和PMON)等组成部分。具体工作流程如下: 1. **错误日志**:记录复制过程中可能出现的错误信息,...

    oracle误删除表空间后恢复

    表空间是Oracle数据库中存储数据的基本单位,每个表空间由一个或多个数据文件组成。表空间可以包含各种类型的数据对象,如表、索引、聚簇等。因此,误删除表空间可能会导致数据丢失,对业务运行造成严重影响。 ### ...

    oracle触发器的创建与使用

    其中,`整数`用于区分同名过程,`@形参变量`定义参数及其数据类型,`output`关键字表示参数用于返回值,`WITH`选项可以用于重新编译或加密存储过程,`FOR replication`则与复制操作相关。 触发器的创建与存储过程...

    Oracle数据库如何导入导出表

    2. **复制表**:要复制表`uuu`的数据到`yyy`,可以使用`CREATE TABLE yyy AS SELECT * FROM uuu`。这不仅限于同一用户,也可以跨用户复制。 3. **创建用户**:创建新用户,例如`CREATE USER usename IDENTIFIED BY ...

    Oracle dmp文件导出导入(还原)到不同的表空间和不同的用户操作

    这种文件包含了表定义、索引、约束条件等元数据以及表中的数据,通常通过Oracle的`EXPDP`和`IMPDP`命令来创建或导入。 #### 二、Oracle DMP 文件导出过程 在开始导出DMP文件之前,首先需要确保Oracle环境中已安装并...

    存储过程的实现

    本文档详细介绍了如何在Oracle数据库中实现存储过程,包括创建存储过程、变量赋值、条件判断、循环结构以及数组的使用。存储过程作为一种高效的数据处理手段,在实际应用中具有重要的作用。理解并掌握这些基础知识将...

    MySQL VS ORACLE.pdf

    相比之下,Oracle采用单一的存储引擎模型,支持事务处理,将表组织成索引-组织表、聚簇表、嵌套表等多种形式。 事务方面,Oracle在数据库级别进行事务管理,支持复杂的事务操作。MySQL则主要基于表进行事务管理,...

    Oracle导出INSERT语句V1.1

    Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于各种规模的企业和组织中,用于存储和管理大量结构化数据。在日常数据库管理和开发过程中,有时我们需要将Oracle数据库中的数据导出为INSERT语句,以便...

    Oracle sharding database安装操作手册

    在分片环境中,分片表的数据被分割存储在不同的分片中,而复制表的数据则在所有分片中复制存储。 5. 安装过程中的known issue(已知问题) - 在安装过程中可能会遇到的已知问题需要记录和解决,这可能涉及软件兼容...

    oracle 本科教学ppt

    这部分会涉及如何创建、修改和删除数据库对象,如表、视图、索引、存储过程和触发器。还将介绍数据类型、主键和外键等关系数据库设计的基础概念。 四、数据库安全性 Oracle提供了强大的用户权限管理机制,包括用户...

    oracle精品实例,练习总结

    2. **PL/SQL**:Oracle特有的过程式语言,结合了SQL的查询能力与编程语言的功能,用于编写存储过程、函数、触发器等。通过实例,我们可以学习如何编写有效的PL/SQL块,处理异常,以及与表交互。 3. **数据库对象**...

    DB2与ORACLE常用语句对照

    - Oracle和DB2都支持存储过程和触发器,但语法和处理方式有所不同。 - Oracle的PL/SQL和DB2的SQL PL都是过程化编程的扩展,但语法和函数库有差异。 6. 并行处理与事务管理: - Oracle的并行查询通过`PARALLEL`...

Global site tag (gtag.js) - Google Analytics