--创建临时表,规定好格式,是必须的,不同于sqlserver那么随意;
Create Global Temporary Table record4
(
  yljgdm VARCHAR2(22) not null,
  jzlsh VARCHAR2(50) not null,
  kh VARCHAR2(32),
  klx VARCHAR2(16),
  hzxm VARCHAR2(32),
  jzlx VARCHAR2(3),
  zzysgh VARCHAR2(16),
  zzysxm VARCHAR2(32),
  jzksmc VARCHAR2(30),
  jlgxsj DATE default Sysdate,
  zbdm VARCHAR(22)
)
on commit preserve rows;
 
Create Global Temporary Table fee
(
  jzlsh VARCHAR2(50) not null,
  mxxmje NUMBER(15,3) default 0,
  tfbz VARCHAR2(1) not null
 
)
on commit preserve rows;
 
 
--运行经过调试的脚本,插入数据到临时表中
 
insert into record4(yljgdm,jlgxsj,zzysgh,zzysxm,jzksmc,zbdm,jzlsh,kh,klx,hzxm,jzlx)
select A.YLJGDM,A.JLGXSJ,A.ZZYSGH,A.ZZYSXM,A.JZKSMC,'MJZYZB',A.JZLSH,A.KH,A.KLX,A.HZXM,A.JZLX from CEN_CORE_V20.TB_YL_MZ_MEDICAL_RECORD A WHERE TO_CHAR(add_months(sysdate,-1),'yyyymm')=to_char(A.JLGXSJ,'yyyymm') ;
--select * from record4;
 
insert into fee
select B.jzlsh,sum(B.mxxmje),B.TFBZ from CEN_CORE_V20.TB_HIS_MZ_FEE_DETAIL B where TO_CHAR(add_months(sysdate,-1),'yyyymm')=to_char(B.stfsj,'yyyymm') and B.Mxfylb in('12','13','14')
group by B.jzlsh,B.TFBZ;
 
--select * from fee;
 
--select * from biolap.tb_yljg_sjzl_hz;
--经过处理之后的数据,经过运行之后插入到目标表
insert into biolap.tb_yljg_sjzl_hz(yljgdm,tjsj,ysgh,ysxm,ksmc,zbdm,jzlsh,kh,klx,hzxm,jzlx,mxxmje)
select A.YLJGDM,to_char(A.JLGXSJ,'yyyymm'),A.Zzysgh,A.Zzysxm,A.JZKSMC,A.Zbdm,A.Jzlsh,A.Kh,A.Klx,A.Hzxm,A.Jzlx,
  sum(case when B.TFBZ='1' then B.MXXMJE when B.TFBZ='2' then -1*B.MXXMJE else 0 end ) je from record4 A,fee B
where A.JZLSH=B.JZLSH
group by a.yljgdm,to_char(A.JLGXSJ,'yyyymm'),A.Zzysgh,A.Zzysxm,A.Jzksmc,A.zbdm,A.jzlsh,A.kh,A.klx,A.Hzxm,A.Jzlx;
 
--删除目标表中有可能出现问题的东西(其实不应该写在这里,但是因为程序的每次查询都要用到该列,所以这么写也可以)
delete from biolap.tb_yljg_sjzl_hz where yljgdm is null;
 
--提交
commit;
--这种preserve类型的临时表是以会话为单位的,就算提交,临时表中的数据还会存在
--另一种delete类型的临时表,是以事务为单位的,提交之后表会仍然存在,但是表内部的数据就会清空
--为了避免混乱,直接删除临时表,避免出现更新表结构之后提示表名被占用,或者错误的沿用上一次返回的数据
drop table record4;
drop table fee;
 
--select * from biolap.tb_yljg_sjzl_hz where zbdm='MJZYZB'; 

用一个例子说明oracle临时表,创建过程,的更多相关文章

  1. Oracle 临时表创建及删除

    Oracle临时表 临时表分为两种 会话级别(ON COMMIT PRESERVE ROWS;) CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <co ...

  2. [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总

    Linux下单机安装ASM流程总结 一.安装Linux ESXi上传iso镜像至存储目录 创建虚拟机,并且选择主机设备的ISO启动 选择完成时编辑虚拟机设置 配置镜像文件如下: 打开控制台: 并且选择 ...

  3. oracle 12c 创建PDB用户即Local User (PDB与CDB)

    Oracle 12C用户创建与表空间分配  数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace ...

  4. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

  5. .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  6. IController控制器的创建过程

    .NET/ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)   阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactor ...

  7. 三、ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  8. ​ 用一个开发案例详解Oracle临时表

    ​ 用一个开发案例详解Oracle临时表 2016-11-14 bisal ITPUB  一.开发需求  最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段 ...

  9. Oracle集群 & Grid(rac)配置,反推创建过程(重要)。

    目前机器上,oracle都是安装好的,那么我们怎么知道,之前的安装过程大概是什么样子呢? 大致安装oracle集群的内容: 一.准备和配置: 1.网卡 2.ip资源 3.scanip 4.hosts ...

随机推荐

  1. CSS中层叠和继承的概念。

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码: 1 2 3 4 5 6 7 8 9 <ht ...

  2. Java之封装性

    封装概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改. 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必 ...

  3. WPF 精修篇 全局为处理异常处理

    原文:WPF 精修篇 全局为处理异常处理 当我们写代码的时候 对代码错误异常处理 有的时候会 没做处理 比如 我们执行如下代码 会引发程序崩溃 private void Button_Click(ob ...

  4. Python进阶小结

    目录 一.异常TODO 二.深浅拷贝 2.1 拷贝 2.2 浅拷贝 2.3 深拷贝 三.数据类型内置方法 3.1 数字类型内置方法 3.1.1 整型 3.1.2 浮点型 3.2 字符串类型内置方法 3 ...

  5. 终端中的 zsh 和 bash-魔法切换

    常用ubuntu,这两个终端都装了,平时使用zsh比较方便,可是,有时候出现了问题,不知道是谁的问题时候,还要做一下切换操作的,怎么才能迅速切换呢? 要切换,首先要知道你现在使用的是什么,请看第一个命 ...

  6. 创建workbook及相关操作

    通过openpyxl模块创建workbook时,无需本地事先创建好excel,它会直接创建一个新的excel文件 创建workbook时,会至少包含一个worksheet 注意:openpyxl模块只 ...

  7. P3376 网络最大流模板(Dinic + dfs多路增广优化 + 炸点优化 + 当前弧优化)

    ### P3376 题目链接 ### 这里讲一下三种优化的实现以及正确性. 1.dfs多路增广优化 一般的Dinic算法中是这样的,bfs() 用于标记多条增广路,以至于能一次 bfs() 出多次 d ...

  8. 配置文件和sqlplus简单使用

    oracle简单配置文件 数据文件目录 D:\app\inmeditation\oradata\orcl 以.CTL结尾得的文件是数据库的控制文件 以.LOG结尾的是数据库日志文件 以.DBF结尾的是 ...

  9. JS实现根据两点位置的经纬度获取距离

    // 经纬度转换成三角函数中度分表形式. function rad(d) { return d * Math.PI / 180.0; } // 根据经纬度计算距离,参数分别为第一点的纬度,经度:第二点 ...

  10. 基于swoole实现多人聊天室

    核心的swoole代码 基本的cs(client-sercer)结构不变,这里利用的是redis的哈希和set来储存和分组;从而达到了分组,统计,定时推送等功能;最后利用onclose事件来剔除断开的 ...