`
sjk2013
  • 浏览: 2166839 次
文章分类
社区版块
存档分类
最新评论

oracle 数据库多表插入详解

 
阅读更多

插入多表操作。

大部分插入操作是针对单表操作的。但是oracle支持多表插入(insert)语句 。在数据仓库方面的抽取、转移和装入(ETL,Extract Transform and Load)的例程方面方面你将频繁的用到多表插入操作。

通过一个多表插入,你能你可以通过一个单一的数据源,把数据装载到多个数据表里面。通过减少整个数据的路径,来减少减少工作量,因此去的更快的输出。

如果一个WHEN条件为真(TRUE),相关的INTO语句被执行。如果没有条件为真,为真,那么ELSE条款被执行。关键字ALL告诉数据库,检查WHEN后面的

每一个条件.另一方面,关键字FIRST告诉数据库当检查WHEN条件的第一个条件为真是,停止检查后续条件。

下面的例子,是一个保险公司有两个保险条款,财产和意外伤害在条款表里。再是在数据市场里,他们把这两个表分成单独的事实表。在每月装入是,新的条款被增加到property_premium_fact 和cacuaty_premium_fact表里。你就可以使用多表插入更加有效的增加行,这样比使用两个单独的

插入(INSERT)语句个更加高效。例子如下:

INSERT FIRST
WHEN policy_type = 'P' THEN
INTO property_premium_fact(policy_id
,policy_nbr ,premium_amt)
VALUES (property_premium_seq.nextval
,policy_number ,gross_premium)
WHEN p.policy_type = 'C' THEN
INTO property_premium_fact(policy_id
,policy_nbr ,premium_amt)
VALUES (property_premium_seq.nextval
,policy_number ,gross_premium)
SELECT policy_nbr ,gross_premium ,policy_type
FROM policies
WHERE policy_date >=
TRUNC(SYSDATE,'MM') - TO_YMINTERVAL('00-01');


通过使用多表插入,INSERT语句,代替两个单独的插入语句,这样的代码块

通过一个单独访问表通道代替两个访问通道因此数据装载更加高效。

分享到:
评论

相关推荐

    Oracle数据库Sql语句详解大全

    第一章 SELECT查询 写一条SELECT查询语句 在查询中使用表达式、运算符 对空值的处理 对查询字段起别名 ...在已创建表中插入新的数据 修改已经存在的数据 删除表中的数据 理解事物控制及其重要性 等等......

    Oracle数据库中分区表的操作方法详解

    在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百 GB,有的甚至可以到TB级。虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写...

    C# Oracle数据库操作类实例详解

    可执行超多常用的Oracle数据库操作,包含了基础数据库连接、关闭连接、输出记录集、执行Sql语句,返回带分页功能的dataset 、取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务。需要特别指出的是...

    .net实现oracle数据库中获取新插入数据的id的方法

    在sql sever中实现插入数据的自动增长是很容易的,但是在oracle数据库中实现这一操作不是很容易,同时要想在.net中实现获取新插入数据的id,而且不会出现读错的情况,就更显得困难了,为了解决在oracle数据中插入的...

    Oracle PL/SQL语言初级教程

    4.Oracle数据库数据对象分析(上) 42 删除表和更改表名 46 管理视图 47 5.Oracle数据库数据对象分析(中) 49 完整性约束 49 Check 约束 49 NOT NULL约束 50 唯一性约束(Unique constraint) 51 外部键约束(Foreign...

    Oracle触发器语法详解

    触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:

    oracle详解

    6.设置目标数据库表空间为读写 alter tablespace app_data read write; alter tablespace app_index read write; 优化EXP/IMP的方法: 当需要exp/imp的数据量比较大时,这个过程需要的时间是比较长的,我们可以用...

    精通SQL 结构化查询语言详解

    2.3.2 Oracle数据库体系结构  2.3.3 Oracle数据库系统结构 2.3.4 使用SQL*Plus执行SQL语句 2.4 PL/SQL简介  2.4.1 PL/SQL的特点  2.4.2 PL/SQL程序结构 第3章 创建、修改和删除表 3.1 表的基础知识  ...

    oracle 索引组织表的深入详解

    但是这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行重新排序)。索引组织表的创建格式如下: 代码如下:create table indexTable( ID varchar2 (10), NAME varchar2 (20), constraint pk_id ...

    Oracle表碎片整理操作步骤详解

    一:准备测试数据,使用HR用户,创建T1表,插入约30W的数据,并根据object_id创建普通索引,表占存储空间34M 代码如下:SQL> conn /as sysdba 已连接。 SQL> select default_tablespace from dba

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

    注意:(1)要求目标表Table2必须存在,并且字段field,field2…也必须存在 (2)注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键 (3)注意语法,不要加values,和插入一条...

    Oracle数据操作和控制语言详解

    正在看的ORACLE教程是:Oracle数据操作和控制语言详解。SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如 创建、修改或者删除数据库;...

    Oracle触发器trigger详解

    数据库触发器是一个与表相关联的,存储的PL/SQL 语句。 每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列。 举个简单的例子: 当员工表中新增一条记录...

    数据库的基础知识及增删改查—详解—适合初学者学习

    数据库的增删改查数据库数据库的分类常见的关系型数据库SQL分类MySql数据库的安装和使用数据库的表的设计数据库服务器的连接数据库表的设计插入—-insert修改表记录–update删除表中的记录—-delete查询—-select...

    精通SQL--结构化查询语言详解

    2.3.1 oracle数据库软件组成 29 2.3.2 oracle数据库体系结构 29 2.3.3 oracle数据库系统结构 30 2.3.4 使用sql*plus执行sql语句 31 2.4 pl/sql简介 32 2.4.1 pl/sql的特点 32 2.4.2 pl/sql程序结构 33 第3章 ...

    基于Oracle闪回详解(必看篇)

    表截断、逻辑错误、其他多表意外事件 闪回DATABASE 闪回日志、undo 是 DROP 删除表 闪回DROP 回收站(recyclebin) 是 表 更新、删除、插入记录 闪回TABLE 还原数据,undo 是 查询 当前数据和历

    Oracle中直方图对执行计划的影响详解

    大家应该都知道,在Oracle数据库中,CBO会默认目标列的数据在其最小值low_value和最大值high_value之间均匀分布,并按照均匀分布原则,来计算目标列 施加查询条件后的可选择率以及结果集的cardinality. 如果对目标...

Global site tag (gtag.js) - Google Analytics