`

Oracle多表级联更新

阅读更多
我们在平时的工作中可能遇到过,多表级联更新,我也在网上看到过不少的方法,但是使用这些方法一般都没成功过,所以今天我给大家介绍一种稍微麻烦的方法——用游标实现,我觉得绝对这种方法比较安全的:

--首先定一个游标把需要用到的一些数据存放到游标中:
declare
  CURSOR D_CURSOR_CUS_INFO IS
    select t3.id_           as id_,
           t3.owe_money_    as owe_money_,
           a.heatingArea    as heating_area_
    from T_CUS_OWE_MONEY_2 t2
    left join T_CUS_OWE_MONEY_3 t3 on t2.id_= t3.id_
    left join (select s.bh,  sum(
           case
                 when s.stkbz='0' then nvl(s.mj,0)
                 when s.stkbz='1' then 0-nvl(s.mj,0)
           end
      ) as heatingArea from  sk s  where s.nd = '2008-2009' group by s.bh) a on t2.bh_=a.bh
  where  t3.owe_money_- t2.owe_money_  = a.heatingArea*5 and t3.OWE_MONEY_ > 0;

--然后循环游标对数据进行更新:
begin
        FOR everyRow IN D_CURSOR_CUS_INFO
        loop
         update T_CUS_YEAR_STATUS t
             set t.HEATING_AREA_ = everyRow.HEATING_AREA_,
                 t.OWE_MONEY_    = everyRow.owe_money_
             where t.YEAR_ = '2008-2009'
                   and t.id_ = everyRow.id_;
       end loop;
      commit;
end;
0
1
分享到:
评论

相关推荐

    Oracle多表级联更新详解

    在数据库管理中,多表级联更新是一种常见的操作,特别是在关系型数据库如Oracle中,当多个表之间存在关联时,我们需要确保数据的一致性。在本篇内容中,我们将深入探讨如何在Oracle中实现多表级联更新,尤其是通过...

    Oracle Adf级联菜单过滤

    在Oracle ADF中,级联菜单(Cascading Menus)是常见的一种交互元素,尤其在处理多表关联数据时非常实用。级联菜单允许用户在选择一个选项后,根据该选项的值动态地过滤下一级菜单的内容,这样可以提供更加直观和...

    Oracle数据库中的级联查询、级联删除、级联更新操作教程

    Oracle数据库中的级联查询、级联删除和级联更新是数据库设计中常用的操作,它们用于在多表关联的关系型数据库中实现数据的联动处理。在Oracle中,这些操作主要涉及外键约束和触发器。 首先,级联查询是通过自连接来...

    解析Oracle中多表级联删除的方法

    在Oracle数据库中,多表级联删除是一种常见的需求,特别是在数据关系复杂的环境中。级联删除允许在删除一个表中的记录时,自动删除依赖于该记录的其他表中的相关记录。以下将详细介绍三种在Oracle中实现多表级联删除...

    oracle表空间替换转移级联删除脚本生成工具

    1.可以扫描oracle导出的dmp文件中的表空间信息,然后替换为指定的表空间名,要以将多个表空间名转换为一个表空间名 2.可以进行常规的一些导入导出新建数据库操作 3.可以生成包含子表的按条件删除的脚本,维护数据时...

    ajax+jQuery+ssh+oracle级联实例

    在IT行业中,构建高效、动态的Web应用是关键任务之一,而"ajax+jQuery+ssh+oracle级联实例"提供了一个具体的实现方案。这个实例涵盖了前端到后端的关键技术,包括异步数据交互(Ajax)、JavaScript库(jQuery)、...

    ADF相互独立的LOV实现级联

    在网上看到很多基于一个VO中的两个Atttribute的LOV实现级联的例子,本例子实现如何将两个独立的LOV实现级联,以Oracle实例数据库HR中的DEPARTMENTS和LOCATIONS两个表为例,根据DEPARTMENT中的列location_id过滤...

    Web树形级联菜单,连接oracle,嵌套ajax

    综上所述,"Web树形级联菜单,连接Oracle,嵌套Ajax"的项目涵盖了Web开发中的多个重要技术,包括前后端交互、数据库操作和用户体验优化。通过深入理解并熟练掌握这些技术,可以构建高效、用户友好的Web应用。

    完整ORACLE创建表空间、用户、设置用户权限脚本

    表空间是Oracle数据库中逻辑存储结构的一部分,它将数据库物理存储空间划分成多个部分进行管理。 **1.1 创建临时表空间** ``` /*时占*/create temporary tablespace zoweenewerp_temp tempfile 'D:\oracle\data\...

    购物网站后台Oracle数据库管理(多个表的增删改查级联操作)

    多个表(管理员,用户,商品,商品类型,订单,订单详情,图片,评论,地址)的增删改查、管理员登陆、分页、搜索、高级搜索等操作,界面使用jquery easyui完成,后台全部返回json。使用status2。前台功能待完成。

    二级级联带数据库

    在这种情况下,一级级联可能是城市表的主键,二级级联(区域)则是外键,引用城市表的主键。 数据库设计中的这种关联通常采用关系型数据库管理系统(RDBMS)实现,如MySQL、PostgreSQL、Oracle等。在这些系统中,...

    地区级联表

    地区级联表是一种在数据库设计中常见的数据结构,主要用于存储具有层级关系的地理区域信息,如国家、省份、城市、区县等。这样的表格设计能够有效地管理与地区相关的数据,并在用户界面中实现级联下拉选择的效果,...

    常用oracle查询语句

    本文总结了十个常用的 Oracle 查询语句,涵盖了查看表空间、回滚段、控制文件、日志文件、表空间使用情况、数据库对象、数据库版本、数据库创建日期、归档方式、长时间运行的 SQL 语句和数据表参数信息等多个方面。...

    oracle创建数据库表空间.doc

    Oracle 创建数据库表空间 Oracle 是一种流行的关系数据库管理系统,创建数据库表空间是 Oracle 数据库管理员的一项基本任务。本文将详细介绍如何在 Linux 环境下创建和删除 Oracle 表空间及用户。 一、创建临时表...

    sql与oracle的区别[定义].pdf

    Oracle仅支持级联删除的外键约束,而SQL还支持级联更新。 最后,SQL的临时表使用#或##开头,会在使用后自动释放,而Oracle的临时表存在于数据库中,每个会话的数据独立。 总的来说,SQL与Oracle在设计哲学和功能...

    ORACLE与SQLSERVER的区别

    SQL Server 的外键约束支持级联删除和级联更新,而 Oracle 只支持级联删除。创建外键约束时,两个系统都有相应的语法,但在级联操作上有所不同。 以上只是 Oracle 和 SQL Server 在几个关键方面的对比,实际上,...

    oracle与sql_server的区别

    在处理外键约束时,SQL Server允许级联删除和级联更新,而Oracle仅支持级联删除。这意味着在SQL Server中,当主表中的记录被删除或更新时,依赖的子表记录也可以自动进行相应的更新或删除,提供了更强大的数据完整性...

Global site tag (gtag.js) - Google Analytics