在11.2中,Oracle新增了APPEND_VALUES提示,使得INSERT INTO VALUES语句也可以使用直接路径插入。

例子很简单:
SQL> SELECT * FROM V$VERSION;

BANNER

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> CREATE TABLE T_APPEND (ID NUMBER, NAME VARCHAR(30));
表已创建。
SQL> INSERT /+ APPEND(A) / INTO T_APPEND A
2 VALUES (1, ‘ABC’);
已创建 1 行。
SQL> SELECT * FROM T_APPEND;
ID NAME


     1 ABC

SQL> COMMIT;
提交完成。
SQL> INSERT /+ APPEND(A) / INTO T_APPEND A
2 SELECT ROWNUM + 1, TNAME
3 FROM TAB
4 WHERE ROWNUM = 1;
已创建 1 行。
SQL> SELECT * FROM T_APPEND;
SELECT * FROM T_APPEND
*
第 1 行出现错误:
ORA-12838: 无法在并行模式下修改之后读/修改对象

SQL> COMMIT;
提交完成。
对比INSERT INTO VALUES和INSERT INTO SELECT语句后的结果可以清晰的看到,APPEND提示对于INSERT INTO VALUES语句无效,数据仍然采用常规路径插入。
在11.2中使用APPEND_VALUES提示,才使得单条插入语句真正实现了直接路径方式:
SQL> INSERT /+ APPEND_VALUES(A) / INTO T_APPEND A
2 VALUES (3, ‘APPEND_VALUE’);
已创建 1 行。
SQL> SELECT * FROM T_APPEND;
SELECT * FROM T_APPEND
*
第 1 行出现错误:
ORA-12838: 无法在并行模式下修改之后读/修改对象

SQL> COMMIT;
提交完成。
SQL> SELECT * FROM T_APPEND;
ID NAME


     1 ABC
2 DEMO
3 APPEND_VALUE

Oracle11gr2新增APPEND_VALUES提示的更多相关文章

  1. 同步Flex Chart的数据提示

    原文 http://www.riafan.com/sync-datatips-for-flex-chart/ 图表数据提示的同步不仅包含单个图表内多个系列的数据提示的同步,也包含多个图表的数据提示的同 ...

  2. [H5表单]html5自带表单验证体验优化及提示气泡修改

    慕课网之前录制的视频,js/jquery各种宽高的理解和应用,最近终于上线了.还有一个html5左侧导航没有上线!最近慕课网系列课程让我录制一个html5表单验证的课程.今天就稍微说一下表单验证!另外 ...

  3. 【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势

    原创 2016-09-12 韩锋  作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构. ...

  4. SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势

    一.提示(Hint)概述 1为什么引入Hint? Hint是Oracle数据库中很有特色的一个功能,是很多DBA优化中经常采用的一个手段.那为什么Oracle会考虑引入优化器呢?基于代价的优化器是很聪 ...

  5. CYQ.Data V5 分布式缓存Redis应用开发及实现算法原理介绍

    前言: 自从CYQ.Data框架出了数据库读写分离.分布式缓存MemCache.自动缓存等大功能之后,就进入了频繁的细节打磨优化阶段. 从以下的更新列表就可以看出来了,3个月更新了100条次功能: 3 ...

  6. ios8.1.2耗电情况严重的解决方法

    打开cydia,搜索ifile(威锋源,版本2.1.0-1).打开ifile,进入路径/Applications.里面有许多程序文件,选择适当的进行禁用(ifile可以禁用程序的活动而不完全删除它,这 ...

  7. 【C#基础】CSA控件编写秘籍

    新建CSA控件 1.新建一个纯类,命名空间是: namespace SimPerfect.CSAControlLibrary.CSAControls 2.实现两个构造函数:无参和传Candy参数 pu ...

  8. 测试驱动开发实践2————从testList开始

    内容指引 1.测试之前 2.改造dto层代码 3.改造dao层代码 4.改造service.impl层的list方法 5.通过testList驱动domain领域类的修改 一.测试之前 在" ...

  9. 测试驱动开发实践3————从testList开始

    [内容指引] 运行单元测试: 装配一条数据: 模拟更多数据测试列表: 测试无搜索列表: 测试标准查询: 测试高级查询. 一.运行单元测试 我们以文档分类(Category)这个领域类为例,示范如何通过 ...

  10. API接口通讯参数规范

    通常在很多的公司里面,对于接口的返回值没做太大规范,所以会比较常看到各个项目各自定义随意的返回值,比如以下情况: 1. 直接返回bool值(True或者False) 2. 返回void,只要不是异常信 ...

随机推荐

  1. SV 并发线程

    内容 assign d = a & b; assign e = b | c; begin...end之间的语句是串行执行的 fork....join语句是并行执行的 逻辑仿真工具中的并发性 仿 ...

  2. k8s~istio的安装与核心组件

    安装istio 在线安装:https://istio.io/latest/docs/setup/getting-started/#download 或者直接在这里下载:https://github.c ...

  3. [转帖]Linux之bash反弹shell原理浅析

    环境 攻击机:kali            ip:192.168.25.144 靶    机:centos      ip:192.168.25.142 过程 kali 监听本地8888端口 靶机 ...

  4. [转帖]kill 参数表

    https://www.cnblogs.com/alix-1988/p/14331898.html kill命令格式:kill -Signal pidpid是进程号,可以用 ps 命令查出 signa ...

  5. [转帖]【JVM】堆内存与栈内存详解

    堆和栈的定义 java把内存分成栈内存和堆内存. (1)栈内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配. 当在一段代码块中定义一个变量时,java就在栈中为这个变量分 ...

  6. rabbitmq rpm包安装以及简单设置用户的方法

    公司有一台性能比较好的power机器. 同事要求安装rabbitmq 今天尝试进行了一下处理 公司里面有网络有相应的源 性能还不错 第一步安装一下依赖的erlang yum install erlan ...

  7. 一文搞懂Redis

    作者: 京东物流 刘丽侠 姚再毅 康睿 刘斌 李振 一.Redis的特性 1.1 Redis为什么快? 基于内存操作,操作不需要跟磁盘交互,单次执行很快 命令执行是单线程,因为是基于内存操作,单次执行 ...

  8. JAVA多线程并发编程-避坑指南

    作者:京东零售 肖朋伟 一.前言 开发过程中,多线程的应用场景可谓十分广泛,可以充分利用服务器资源,提高程序处理速度.我们通常也会使用池化技术,去避免频繁创建和销毁线程. 本篇旨在基于编码规范.工作中 ...

  9. vue组件上绑定原生事件

    将原生事件绑定在组件上 .native 修饰符: 子组件 <template> <div class="demo"> <h2>我是子组件< ...

  10. 【记录一个问题】VictoriaMetrics的vmstorage因为慢查询导致大量写入失败

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 见上图. 一直以为vmstorage中的查询协程会让位于写 ...