在数据迁移期间oracle学习笔记


0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态


需求分析:
1、根据上述要求创建需要的表
2、将几个表中的相应数据对应插入到新创建的表中
3、因为claim_id是固定的,可以根据claim_id进行循环插入几个表中的数据
4、在7、8项中涉及到案件状态的去重和拼接
5、案件状态的转换


--创建表T_CLAIM_NEW
create table T_CLAIM_NEW(ID NUMBER,                  --主键IDClaimId number(10),UserCode varchar2(30),      --用户名称AreaCode varchar2(10),      --地区代码CompanyCode varchar2(8),    --公司代码ClaimQueryNo varchar2(50),  --理赔编码PolicyConfirmNo varchar2(50), --投保确认码CLAIM_STATUS varchar2(2),       --案件状态G_CLAIM_STATUS varchar2(30),        --案件进展REOPEN_CLAIM_STATUS varchar2(30), --重开后的案件进展IA_CLAIM_STATUS varchar2(30),       --转换后的案件状态CONSTRAINT PK_ID PRIMARY KEY (ID)
);--自增序列
CREATE SEQUENCE T_CLAIM_NEW_ID1INCREMENT BY 1      --每次+1START WITH 1            --从1开始NOMAXVALUE              --不设置最大值NOCYCLE                     NOCACHE;--创建触发器
CREATE OR REPLACE TRIGGER TRI_T_CLAIM_NEW_ID1BEFORE INSERT ON T_CLAIM_NEWFOR EACH ROW beginselect T_CLAIM_NEW_ID1.nextval INTO :NEW.ID from dual;
end;
/************************************************************************************************************************************************--去重:
--创建临时表
create table ma_20180709 as (select * from T_CLAIM_LIST_RECORD);
--删除重复数据并保留最大时间(因为最后一次更新时间也是id越大时间越大)
delete from  ma_20180709 where RECORD_ID not in (select max(RECORD_ID) from ma_20180709 group by claim_id,claim_code);
************************************************************************************************************************************************
--查询表ma_20180709中相应数据并拼接claim_status字段
--insert into tablename
select  listagg(claim_status,',') within group(order by CLAIM_STATUS) from ma_20180709 group by claim_id,claim_code;    ************************************************************************************************************************************************
--对轨迹表进行去重等操作
--创建ma_01临时表
create table ma_01 as (select * from T_CLAIM_LIST_RECORD);
--去重
delete from ma_01 where RECORD_ID not in (select max(RECORD_ID) from ma_01 group by claim_id,claim_code);--对重开轨迹表进行去重等操作
--创建ma_03临时表
create table ma_03 as (select * from T_CLAIM_LIST_RECORD_REOPEN);
--去重
delete from ma_03 where RECORD_ID not in (select max(RECORD_ID) from ma_03 group by claim_id,claim_code);--创建主表T_CLAIM_LIST的临时表ma_02
create table ma_02 as (select * from T_CLAIM_LIST);
************************************************************************************************************************************************--函数入口
declare--声明投保确认码
CONFIRM_SEQUENCE varchar(50);
--声明案件状态
claim_status_bj varchar2(30);
--声明案件进展(拼接后案件状态)
claim_status_pj varchar2(30);
--声明重开后案件状态
claim_status_ck varchar2(30);
--声明游标
cursor TAGENTMENUd is select * from t_claim_list_record where 1=1;begin
for claim in TAGENTMENUd LOOP--查询出claim_id相等的案件状态并赋值给变量claim_status_bjselect CLAIM_STATUS into claim_status_bj from ma_01 where claim_id = claim.claim_id;--查询出claim_id相等的案件状态并赋值给变量CONFIRM_SEQUENCEselect CONFIRM_SEQUENCE_NO into CONFIRM_SEQUENCE from ma_02 where claim_id=claim.claim_id;--拼接去重后轨迹表ma_01中的案件状态并根据claim_id赋值给变量claim_status_pjselect listagg(claim_status,',') within group(order by CLAIM_STATUS) into claim_status_pj from ma_01 where claim_id=claim.claim_id;--拼接去重后重开轨迹表ma_03中的案件状态,并根据claim_id赋值给变量claim_starus_ckselect listagg(claim_status,',') within group(order by CLAIM_STATUS) into claim_starus_ck from ma_03 where claim_id=claim.claim_id;--将拼接后的案件状态进行对应转换--插入操作  insert into T_CLAIM_NEW(ClaimId,AreaCode,ClaimQueryNo,POLICYCONFIRMNO,CLAIM_STATUS,G_CLAIM_STATUS,REOPEN_CLAIM_STATUS) values(claim.claim_id,'110000',claim.claim_code,CONFIRM_SEQUENCE,claim_status_bj,claim_status_pj,claim_starus_ck);END LOOP;
end;
/
************************************************************************************************************************************************
注意点:
1、在函数创建过程中遇到变量问题,想要给查询出来的东西赋值,赋值语法为:'select 字段名(公式) into 变量名 from tablename where 条件语句'2、函数中的循环   如上述所示
for '变量' in '范围/结果集' loop

在大量数据迁移期间oracle学习笔记相关推荐

  1. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  2. oracle学习笔记 参数文件及数据库的启动和关闭

    oracle学习笔记 参数文件及数据库的启动和关闭 我们这节课把oracle的参数文件以及oracle的启动关闭讲一下 一)参数文件作用 先看oracle的参数文件 它由来已久了 我们知道oracle ...

  3. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  4. Oracle学习笔记---(一)

    Oracle学习笔记---(一) 一 1.Oracle简介     Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...

  5. oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网

    oracle学习笔记(一)用户管理 2014-04-13 0 1 --oracle学习第一天 2 --连接 @后面连接数据库实例,具体连接到那个数据库 3 conn scott/tiger@MYORA ...

  6. oracle学习笔记 Oracle体系结构概述

    oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构. 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一块的将oracl ...

  7. Oracle学习笔记 字符集概述

    Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...

  8. oracle学习笔记 oracle软件安装准备工作 第一部分 环境准备

    oracle学习笔记   oracle软件安装准备工作  第一部分 环境准备 这节课对初学者来说内容较多,我把它分成了三篇. 即使这样也不可能把每个可能遇到的问题都说到,如果遇到没说到的问题自己上网搜 ...

  9. Oracle学习笔记(七)——分组统计查询

    Oracle学习笔记(七)--分组统计查询 基础统计函数的使用 分组统计操作的实现,结合多表查询使用分组统计 常用统计函数 COUNT(*|[DISTINCT]字段) MAX(字段,日期或数字) MI ...

最新文章

  1. linux线程10s没有得到调度,操作系统相关题目(附上答案)
  2. vs2008/2010安装无法打开数据文件解决方案
  3. vue-cli Invalid Host header
  4. 打通NTFS权限 文件共享各取所需
  5. debugging Auto Layout:Logical Errors
  6. 判断星座PHP,php根据日期判断星座的函数分享_PHP教程
  7. Linux下高效编写Shell——shell特殊字符汇总
  8. 【java学习之路】(java SE篇)014.Stream API
  9. kong 自建一个具有健康检查功能的http/tcp负载均衡器,配置流量权重,自动/手动目标健康,流量统一认证、鉴权、限流限速、修正,监控、日志等功能
  10. 防盗链及图片加密系统
  11. 《疯狂的站长》读后感1
  12. 微信怎么不支持华为鸿蒙,微信迟迟不加入鸿蒙,华为为何不着急呢?
  13. 表白密码:I Love you的42种密码表白方式
  14. 一问解决设备管理器里面提示:未知usb设备(设备描述符请求失败) 或者是“Unknown USB Device(Device Descriptor Request Sailed)”错误
  15. 利用Landsat8数据的不同波段组合监测冰雪分布情况
  16. 用标志域tag判断队空队满的入队和出队算法
  17. 如何使用 JavaScript 显示/隐藏或切换 DIV 元素
  18. 数据中心与云数据中心
  19. 抖音死亡计算机背景音乐,抖音死亡计算器app
  20. HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏

热门文章

  1. 130242014049+魏俊斌+第2次试验
  2. RocketMQ原理解析-Consumer
  3. 25_android下文件访问的权限
  4. nagios   IO监控 Error executing iostat command
  5. iOS优化内存,提升性能 之五
  6. ADO.NET实例教学一
  7. 6 important .NET concepts: - Stack, heap, Value types, reference types, boxing and Unboxing.
  8. Python中多线程thread与threading的实现方法
  9. python sorted list 包含元组 字典 的多列排序
  10. 【操作系统】输入输出系统(中)-思维导图