在12C中,可以在相同的列的集合上创建多个索引,但是多个索引的类型要不同.同一时刻,只有一个是可见的. SQL> create table emp_tab as select * from emp; SQL> create index emp_tab_ix_01 on emp_tab(job,hiredate); --在创建另一个索引之前,要将上一步创建的索引变成invisible状态 SQL> alter index emp_tab_ix_01 invisible; SQL> c…
Oracle 12c提供的Identity Column特性简化了自增字段的定义. 声明自增字段通常有3种常见的用法,以下三种方式都支持INSERT语句中省略自增字段的插入,但有些许差别. 1. GENERATED [ALWAYS] AS IDENTITY 此时ALWAYS关键字是可选的: create table tb_test ( id number GENERATED ALWAYS AS IDENTITY, name varchar2(100) ); 此时试图插入指定ID字段的元组将报错,…
1. 相同字段上的多重索引   在Oracle 12c R1之前,一个字段是无法以任何形式拥有多个索引的.或许有人会想知道为什么通常一个字段需要有多重索引,事实上需要多重索引的字段或字段集合是很多的.在12c R1中,只要索引类型的形式不同,一个字段就可以包含在一个B-tree索引中,同样也可以包含在Bitmap索引中.注意,只有一种类型的索引是在给定时间可见可用的. SQL>create table more_ind as select * from user_objects;Table cr…
在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL>  create ta…
12C支持先创建一个sequence,然后再将该sequence指定为某个列的值的默认表达式. 和"identity column"具有以下不同点: ·对列的个数没有限制 ·sequence必须在列定义之前定义 ·如果删除了sequence,会导致后面的insert报错 ·表的owner,和使用者对该sequence必须有select权限 ·可以手动插入.更新该列(不使用sequence产生的值) SQL> drop sequence test_seq; SQL> crea…
  Invisible Columns 使用select * from ,desc 等看不到该列, DROP TABLE tab1 PURGE; CREATE TABLE tab1 ( id NUMBER, description ) INVISIBLE ); DESC tab1; Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER SQ…
Identity Columns很适合数据库中需要"surrogate keys"的场景.依赖sequence产生器,每行的标识列会被赋予一个自增或自减的值.缺省,标识列在创建的时候,会被被指定always选项,根据一个sequence来赋值.如果视图insert.update标识列的值都会报错.但是可以人为不指定always选项,从而支持insert.update操作. Identity Columns(标识列)相关规则:·一个表最多只能有一个Identity Columns·Ide…
Oracle 12C 中,想通过操作系统认证登录Oracle 数据库,有一些要注意的地方.不然就会遇到 ORA-01017:invalid username/password; logon denied 用户想要在操作系统登录数据库 有两种方法:通过tns ,一种修改用户名. 一.通过tns登录 tns 的配置这里不做介绍.做Oracle 这一行,这是基本知识. // 不通过tns登录会报错 SQL> conn scott/tiger ERROR: ORA-01017: invalid user…
val list = List(1,2,3) var rdd = sc.parallelize(list) rdd.partitions.size 通过调用SparkContext的parallelize方法,在一个已经存在的Scala集合上创建的(一个Seq对象). 集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集. 一旦分布式数据集(distData)被创建好,它们将可以被并行操作. 例如,我们可以调用distData.reduce(lambda a, b: a + b)来将数组…
随着Oracle 12c推出了in memory组件,使得Oracle数据库具有了双模式数据存放方式,从而能够实现对混合类型应用的支持:传统的以行形式保存的数据满足OLTP应用:列形式保存的数据满足以查询为主的OLAP应用.in memory组件可以和其他数据库组件功能使用,并不需要用户单独开发或者修改应用程序,就可以非常方便的实现基于实时数据库分析的转变.本文会介绍in memory组件的一些相关知识,包含了以下的内容: -列式存储的基本知识 -访问in memory area中的数据 -In…