--创建临时表,规定好格式,是必须的,不同于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. HTML页面导入模板页面(Tomcat)

    找了个前端模板,多个HTML中有重复的部分,一改都改,所以对其进行重构,将重复的部分拿出来 看了很多方法,最简单的是jQuery,但是在我这没起作用,后来发现一个配置tomcat的ssi,让服务器帮我 ...

  2. iOS:捋一遍View的生命周期

    一.介绍 前面介绍了VC的生命周期,闲着没事也来捋一捋View的生命周期,简单用两个类型的View来监测.一个View纯代码创建,另一个View使用Xib创建. 二 .代码 MyCodeView:  ...

  3. 用 Python 批量下载百度图片

    ​ 为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...

  4. angularjs事件通信$on,$emit,$broadcast详解

    公司项目开发用的是angularjs,关于事件通讯一直用的是EventBus,直到上周写一个小组件懒得引用EventBus时,想到用angularjs自带的事件通信时,结果很尴尬的忘记原生方法单词怎么 ...

  5. IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战

    播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...

  6. IT兄弟连 HTML5教程 HTML5的靠山 RFC、WHATWG是什么WEB的新标准

    RFC是什么 RFC文档也称请求注解文档(Requests for Comments,RFC),这是用于发布Internet标准和Internet其他正式出版物的一种网络文件或工作报告,内容和Inte ...

  7. Linux 安装 MySQL 出现 Could NOT find Curses

    通过源码安装 MySQL 数据库,下载了 mysql-5.5.24 的版本,在使用 cmake 时产生了报错,如下: CMake Error at cmake/readline.cmake: (MES ...

  8. 【linux】linux 查看物理CPU个数、核数、逻辑CPU个数

    ①物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id) cat /proc/cpuinfo| grep "physical id ...

  9. sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样?

    sqlite是款不错的数据库,使用方便,不需要事先安装软件,事先建表.很多人担心它的性能和数据存储量问题. 比如有的网友问:Sqlite数据库最大可以多大呀?会不会像acc数据库那样,几十MB就暴掉了 ...

  10. .NET Core CSharp初级篇 1-2 循环与判断

    .NET Core CSharp初级篇 1-2 本节内容循环与判断 循环 循环是一个在任何语言都是极为重要的语法,它可以用于很多东西,例如迭代数组等等.在C#中,语法层面的循环有:for , fore ...