Oracle插入之 insert all、insert first介绍

利用insert first/all使得INSERT语句可以同时插入多张表,还可以根据判断条件来决定每条记录插入到哪张或哪几张表中。

insert first:对于每一行数据,只插入到第一个when条件成立的表,不继续检查其他条件。

insert all:对于每一行数据,对每一个when条件都进行检查,如果满足条件就执行插入操作。create table edw_int (

agmt_no         varchar2(40 byte)             not null,

agmt_sub_no     varchar2(4 byte)              not null,

need_repay_int  number(22,2),

curr_period     number(4)                     not null

);

create table edw_int_1 (

agmt_no         varchar2(40 byte)             not null,

agmt_sub_no     varchar2(4 byte)              not null,

need_repay_int  number(22,2),

curr_period     number(4)                     not null

);

create table edw_int_2 (

agmt_no         varchar2(40 byte)             not null,

agmt_sub_no     varchar2(4 byte)              not null,

need_repay_int  number(22,2),

curr_period     number(4)                     not null

);

-- 插入数据

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20003874', '2104', 3126.5, 7);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20003874', '2104', 3290.76, 6);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20003874', '2104', 3454.06, 5);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20003874', '2104', 3616.41, 4);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values  ('20017143', '2104', 2350.86, 0);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20017143', '2104', 3566.55, 0);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20018273', '2104', 1639.46, 0);

insert into edw_int  (agmt_no, agmt_sub_no, need_repay_int, curr_period) values ('20018273', '2104', 2080.49, 0);

COMMIT;

insert all示例insert all

into edw_int_1 (agmt_no, agmt_sub_no, need_repay_int, curr_period) values (agmt_no, agmt_sub_no, need_repay_int, curr_period)

into edw_int_2 (agmt_no, agmt_sub_no, curr_period) values (agmt_no, '1234', curr_period)

select agmt_no, agmt_sub_no, need_repay_int, curr_period from edw_int;

commit;

删除完数据继续测试 加上条件when then else

truncate table edw_int_1;

truncate table edw_int_2;insert all

when curr_period = 0 then

into edw_int_1 (agmt_no, agmt_sub_no, need_repay_int, curr_period) values (agmt_no, agmt_sub_no, need_repay_int, curr_period)

else

into edw_int_2 (agmt_no, agmt_sub_no, need_repay_int, curr_period) values (agmt_no, agmt_sub_no, need_repay_int, curr_period)

select agmt_no, agmt_sub_no, need_repay_int, curr_period from edw_int;

commit;

删除数据

测试insert firstinsert first

when curr_period = 0 then

into edw_int_1 (agmt_no, agmt_sub_no, need_repay_int, curr_period) values (agmt_no, agmt_sub_no, need_repay_int, curr_period)

when agmt_sub_no = '2104' then

into edw_int_2 (agmt_no, agmt_sub_no, need_repay_int, curr_period) values (agmt_no, agmt_sub_no, need_repay_int, curr_period)

select agmt_no, agmt_sub_no, need_repay_int, curr_period from edw_int;

commit;

oracle数据库中insert,【Oracle】sql插入之 insert all、insert first相关推荐

  1. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...

    使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...

  2. oracle数据库中nvarchar,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用

    [varchar,varchar2 ] 联系: 1. varchar/varchar2用于存储可变长度的字符串 比如 varchar(20),存入字符串'abc', 则数据库中该字段只占3个字节,而不 ...

  3. Java 对Oracle数据库中的 BLOB类型 插入图片

    2019独角兽企业重金招聘Python工程师标准>>> package test;import java.io.BufferedInputStream; import java.io ...

  4. oracle数据库sql查询,oracle数据库中常用经典SQL查询

    2010-06-03 14:25:15 来自 --1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_ ...

  5. oracle 数据库中拆分,oracle数据库字符串拆分

    第一种 直接返回切分的字符串 create or replace function Get_StrArrayLength ( av_str varchar2,--要分割的字符串 av_split va ...

  6. oracle查询记录插入,我应该使用哪种查询语法在Oracle数据库中插入记录?

    我是一个初学者,试图用C#创建一个简单的程序来插入和更新Oracle数据库中的记录.我已经成功地连接到数据库,但是我的SQL语句出现异常,该异常指出不支持(?)符号.为什么会出现此异常,该如何解决? ...

  7. oracle数据库插入多表,在Oracle数据库中插入嵌套表

    我是PL/SQL数据库的新学习者,这是一种给apex.oracle.com上的数据库应用指定序列的练习.然后我创建了表格,但是当填充与插入的代码如下所示,应用赋予错误,表你不介意,我需要你的帮助在Or ...

  8. oracle加入生僻字,ORACLE数据库中如何插入生僻字

    ORACLE数据库中如何插入生僻字 发布时间:2020-08-16 23:44:09 来源:ITPUB博客 阅读:184 作者:巡完南山巡南山 本文转自oracle官方博客, 很多客户的数据库的字符集 ...

  9. 在oracle符号,学在oracle数据库中插入特殊符号

    oracle 特殊字符的插入 环境配置: server:9 db server: oracle817.4 client os:windows2000 pro oracle client: oracle ...

  10. Oracle数据库中SQL语句用法(一)

    Copyright © 2019 @Linyer. All Rights Reserved 下接Oracle数据库中SQL语句用法(二)[点击以查看] 目录 第1章:编写基本的SQL SELECT语句 ...

最新文章

  1. SpringBoot实现万能文件在线预览,已开源,真香!!!
  2. Linux(CentOS)安装分区方案
  3. iOS UITest之加载其他应用
  4. 2016-1-29 图解HTTP(04)
  5. mysql导入多条数据语句_MySQL插入多条记录和REPLACE语句
  6. 一支笔卖70万,为的是能打开笔,复杂的像辆车,英国女王都用它
  7. python列表是顺序表还是链表_顺序表与链表
  8. NSJSONSerialization介绍
  9. 中文在线语音识别技术获重大突破!百度输入法准确率超行业最高水平15%
  10. Spring IoC-02
  11. css srcset,研究一下响应式图片加载属性srcset和sizes_html/css_WEB-ITnose
  12. php laravel 面试,当面试关问你Laravel Facade,说出这几个关键词就可以
  13. 大数据平台_大数据应用场景有哪些
  14. 简单的静态网页(宠物网)
  15. 让所有版本的IE卡死的HTML代码
  16. Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人
  17. Flow-Guided-Feature-Aggregation-的安装配置,demo运行,以及采用少量ILSVRC2015 VID数据集在其中训练
  18. python文件和数据格式化思维导图,思维导图:Numpy+Pandas
  19. C++一本通1086(角谷猜想)
  20. 新的起点,梦的启航!我为什么要写这个博客

热门文章

  1. 力扣算法题—045跳跃游戏二
  2. 订单系统开发(仿淘宝和美团网) 之 项目总结(降低数据库并发量)
  3. 时间序列数据和MongoDB:第三部分 - 查询,分析和呈现时间序列数据
  4. BCH社区为比特币现金的发展买单
  5. Linux设备驱动Hello World程序介绍
  6. codeforces Gargari and Permutations(DAG+BFS)
  7. Struts2 格式化输出时间
  8. 公开仓库中Docker镜像的漏洞分析结果发布
  9. [译]使用scikit-learn进行机器学习的简介(教程1)
  10. 轻松使用OpenCV Python控制Webcam,读取Barcode