iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle12C新特性有哪些
  • 410
分享到

Oracle12C新特性有哪些

2024-04-02 19:04:59 410人浏览 泡泡鱼
摘要

这篇文章主要介绍“oracle12C新特性有哪些”,在日常操作中,相信很多人在Oracle12C新特性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle12C新

这篇文章主要介绍“oracle12C新特性有哪些”,在日常操作中,相信很多人在Oracle12C新特性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle12C新特性有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、只读分区或子分区

  在Oracle12.2数据库中可以将表,分区和子分区设置为只读状态,以保护数据免受任何用户或触发器的无意DML操作。

  只读子句的值可以是READ ONLY或READ WRITE。READ WRITE是默认值。除非为分区或子分区显式设置了只读子句,否则只读子句的更高级别设置将应用于分区和子分区!

例子:创建具有只读和读写分区的表:orders_read_write_only

  以下是创建具有只读和读写状态的复合范围列表分区表的示例。将orders_read_write_only被明确指定为READ WRITE,所以表的默认属性是读写。partition的默认属性order_p1被指定为只读,因此子分区ord_p1_northwest和order_p1_southwest从分区继承只读状态order_p1。子分区ord_p2_southwest和order_p3_northwest显式指定为只读,覆盖默认读写状态。

CREATE TABLE orders_read_write_only (
   order_id NUMBER (12),
   order_date DATE CONSTRaiNT order_date_nn NOT NULL,
   state VARCHAR2(2)
   ) READ WRITE
     PARTITION BY RANGE (order_date)
     SUBPARTITION BY LIST (state)
     ( PARTITION order_p1 VALUES LESS THAN (TO_DATE ('01-DEC-2015','DD-MON-YYYY')) READ ONLY
     ( SUBPARTITION order_p1_northwest VALUES ('OR', 'WA'),
       SUBPARTITION order_p1_southwest VALUES ('AZ', 'UT', 'NM')),
     PARTITION order_p2 VALUES LESS THAN (TO_DATE ('01-MAR-2016','DD-MON-YYYY'))
     ( SUBPARTITION order_p2_northwest VALUES ('OR', 'WA'),
       SUBPARTITION order_p2_southwest VALUES ('AZ', 'UT', 'NM') READ ONLY),
     PARTITION order_p3 VALUES LESS THAN (TO_DATE ('01-JUL-2016','DD-MON-YYYY'))
     (SUBPARTITION order_p3_northwest VALUES ('OR', 'WA') READ ONLY,
      SUBPARTITION order_p3_southwest VALUES ('AZ', 'UT', 'NM')) );

--检查分区和子分区的状态:

sql> SELECT PARTITION_NAME, READ_ONLY FROM USER_TAB_PARTITIONS WHERE TABLE_NAME ='ORDERS_READ_WRITE_ONLY';
PARTITION_NAME            READ
------------------------- ----
ORDER_P1                  YES       ---只读状态
ORDER_P2                  NONE
ORDER_P3                  NONE
SQL> set linesize 300
SQL> col PARTITION_NAME for a25
SQL> col SUBPARTITION_NAME for a25
SQL> SELECT PARTITION_NAME, SUBPARTITION_NAME, READ_ONLY FROM USER_TAB_SUBPARTITIONS WHERE TABLE_NAME ='ORDERS_READ_WRITE_ONLY';
PARTITION_NAME            SUBPARTITION_NAME         REA
------------------------- ------------------------- ---
ORDER_P1                  ORDER_P1_NORTHWEST        YES
ORDER_P1                  ORDER_P1_SOUTHWEST        YES
ORDER_P2                  ORDER_P2_NORTHWEST        NO       
ORDER_P2                  ORDER_P2_SOUTHWEST        YES
ORDER_P3                  ORDER_P3_NORTHWEST        YES
ORDER_P3                  ORDER_P3_SOUTHWEST        NO
6 rows selected.

(从上面可以看出,如果单独设置子分区为只读状态 会覆盖分区的读写属性,也就是说对一个分区的子分区进行设置只读状态 不会影响这个分区下的其他子分区的属性!)

--:分区的属性可以通过modify语句进行在线修改。

SQL> alter table ORDERS_READ_WRITE_ONLY modify partition ORDER_P1 read write;

################################################################

2、创建 外部表分区:

 在12.2中,Oracle还支持外部表分区,类似如下的语法展示了这一特性的用途,对于一个统一的外部表,可以通过分区指向不同的外部文件,不同文件可以用于存储已经分类的数据,从而更加灵活的使用外部表:

例子:

SQL> Create  directory  load_d1  as '/home/oracle';
CREATE TABLE sales (loc_id number, prod_id number, cust_id number, amount_sold number, quantity_sold number)
 ORGANIZATION EXTERNAL
 (TYPE oracle_loader
  DEFAULT DIRECTORY load_d1
  ACCESS PARAMETERS
  ( RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
    NOBADFILE
    LOGFILE log_dir:'sales.log'
    FIELDS TERMINATED BY ","
   )
 )
  REJECT LIMIT UNLIMITED
 PARTITION BY RANGE (loc_id)
 (PARTITION p1 VALUES LESS THAN (1000) LOCATION ('california.txt'),
  PARTITION p2 VALUES LESS THAN (2000) DEFAULT DIRECTORY load_d2 LOCATION ('washington.txt'),
  PARTITION p3 VALUES LESS THAN (3000));

###########################################################

3、列表分区:

创建列表分区的语义与创建范围分区的语义非常相似。从Oracle12.2开始可以创建多列列表分区。

例子:创建列表分区

CREATE TABLE q1_sales_by_region
      (deptno number, 
       deptname varchar2(20),
       quarterly_sales number(10, 2),
       state varchar2(2))
   PARTITION BY LIST (state)
      (PARTITION q1_northwest VALUES ('OR', 'WA'),
       PARTITION q1_southwest VALUES ('AZ', 'UT', 'NM'),
       PARTITION q1_northeast VALUES  ('NY', 'VM', 'NJ'),
       PARTITION q1_southeast VALUES ('FL', 'GA'),
       PARTITION q1_northcentral VALUES ('SD', 'WI'),
       PARTITION q1_southcentral VALUES ('OK', 'TX'));

3.1、、使用默认分区创建列表分区:(指定默认分区就是将不符合的行都插入到默认分区中)

   与范围分区不同,使用列表分区,分区之间没有明显的顺序感。

  您还可以指定一个默认分区,将未映射到任何其他分区的行映射到该分区。如果在前面的示例中指定了默认分区,则状态CA将映射到该分区。

例子:使用默认分区创建列表分区表

CREATE TABLE sales_by_region (item# INTEGER, Qty INTEGER, store_name VARCHAR(30), state_code VARCHAR(2),sale_date DATE)
     STORAGE(INITIAL 10K NEXT 20K) TABLESPACE tbs5 
     PARTITION BY LIST (state_code) 
     (PARTITION region_east
        VALUES ('MA','NY','CT','NH','ME','MD','VA','PA','NJ')
        STORAGE (INITIAL 8M) TABLESPACE tbs8,
     PARTITION region_west
        VALUES ('CA','AZ','NM','OR','WA','UT','NV','CO') NOLOGGING,
     PARTITION region_south
        VALUES ('TX','KY','TN','LA','MS','AR','AL','GA'),
     PARTITION region_central 
        VALUES ('OH','ND','SD','MO','IL','MI','IA'),
     PARTITION region_null
        VALUES (NULL),
     PARTITION region_unknown
        VALUES (DEFAULT));

3.2、创建自动列表分区:

自动列表分区方法允许按需创建列表分区。

自动列表分区表类似于常规列表分区表,但该分区表更易于管理。您可以仅使用已知的分区键值创建自动列表分区表。当数据加载到表中时,如果加载的分区键值与任何现有分区不对应,则数据库会自动创建新分区。由于分区是按需自动创建的,因此自动列表分区方法在概念上与现有的间隔分区方法类似。

注意:

①:除非您可以调整数据,否则对值非常频繁更改的数据类型的自动列表分区不太适合此方法。

②:自动列表分区表在创建时必须至少有一个分区。由于为新的和未知的分区键值自动创建了新分区,因此自动列表分区不能具有DEFAULT分区。

例子:

CREATE TABLE sales_auto_list
(  salesman_id   NUMBER(5),
   salesman_name VARCHAR2(30),
   sales_state   VARCHAR2(20),
   sales_amount  NUMBER(10),
   sales_date    DATE)
  PARTITION BY LIST (sales_state) AUTOMATIC
 (PARTITION P_CAL VALUES ('CALIFORNIA')
);

--查看列表分区是否为自动列表分区

SQL> col TABLE_NAME for a20
SQL>  col owner for a10
SQL> set linesize 300
SQL> select OWNER,TABLE_NAME,PARTITIONING_TYPE,AUTOLIST from dba_PART_TABLES where table_name=upper('sales_auto_list');
OWNER      TABLE_NAME           PARTITION AUT
---------- -------------------- --------- ---
SYS        SALES_AUTO_LIST      LIST      YES

3.3、创建多列列表分区:

与单列列表分区类似,各个分区可以包含包含值列表的集合

语法:PARTITION BY LIST (column1,column2)

例子:创建多列列表分区

CREATE TABLE dba_by_db_in_yhem
 (dbalic           NUMBER, 
  username         VARCHAR2(20),
  dbcat            VARCHAR2(4),
  region           VARCHAR2(10)
 )
 PARTITION BY LIST (dbcat, region)
 (
  PARTITION north_part VALUES (('ORCL','BEIJING'), ('ORCL','TIANJIN')),
  PARTITION south_part VALUES (('DB2','SHENZHEN'), ('DB2','GUANGZHOU')),
  PARTITION west_part  VALUES (('SQL','CHENGDU'),('ORCL','CHENGDU'),('DB2','KUNMING')),
  PARTITION east_part  VALUES ('ORCL','SHANGHAI'),
  PARTITION rest VALUES (DEFAULT)
 );
 
insert into  dba_by_db_in_yhem values(1,'EYGLE','ORCL','BEIJING');
insert into  dba_by_db_in_yhem values(2,'KAMUS','ORCL','BEIJING');
insert into  dba_by_db_in_yhem values(3,'LAOXIONG','SQL','CHENGDU');
insert into  dba_by_db_in_yhem values(4,'ORA-600','DB2','GUANGZHOU');
insert into  dba_by_db_in_yhem values(5,'YANGTINGKUN','ALL','BEIJING');
SQL> select * from dba_by_db_in_yhem partition (north_part);
    DBALIC USERNAME             DBCA REGION
---------- -------------------- ---- ----------
         1 EYGLE                ORCL BEIJING
         2 KAMUS                ORCL BEIJING
SQL> select * from dba_by_db_in_yhem partition (south_part);
    DBALIC USERNAME             DBCA REGION
---------- -------------------- ---- ----------
         4 ORA-600              DB2  GUANGZHOU

####################################################

指定秘钥列的分区:

对于范围分区和散列分区表,最多可以指定16个分区键列。

1、按日期创建多列范围分区表

CREATE TABLE sales_demo (
   year          NUMBER, 
   month         NUMBER,
   day           NUMBER,
   amount_sold   NUMBER) 
PARTITION BY RANGE (year,month) 
  (PARTITION before2001 VALUES LESS THAN (2001,1),
   PARTITION q1_2001    VALUES LESS THAN (2001,4),
   PARTITION q2_2001    VALUES LESS THAN (2001,7),
   PARTITION q3_2001    VALUES LESS THAN (2001,10),
   PARTITION q4_2001    VALUES LESS THAN (2002,1),
   PARTITION future     VALUES LESS THAN (MAXVALUE,0));
INSERT INTO sales_demo VALUES(2000,12,12, 1000);
INSERT INTO sales_demo VALUES(2001,3,17, 2000);
INSERT INTO sales_demo VALUES(2001,11,1, 5000);
INSERT INTO sales_demo VALUES(2002,1,1, 4000);

2、创建多列范围分区表(强制实施相等的分区)

CREATE TABLE supplier_parts (
   supplier_id      NUMBER, 
   partnum          NUMBER,
   price            NUMBER)
PARTITION BY RANGE (supplier_id, partnum)
  (PARTITION p1 VALUES LESS THAN  (10,100),
   PARTITION p2 VALUES LESS THAN (10,200),
   PARTITION p3 VALUES LESS THAN (MAXVALUE,MAXVALUE));
INSERT INTO supplier_parts VALUES(5,5,1000);
INSERT INTO supplier_parts VALUES(5,150,1000);
INSERT INTO supplier_parts VALUES(10,100,1000);
--查看各分区的值:
SQL> SELECT * FROM supplier_parts PARTITION (p1);
SUPPLIER_ID    PARTNUM      PRICE
----------- ---------- ----------
          5          5       1000
          5        150       1000
SQL> SELECT * FROM supplier_parts PARTITION (p2);
SUPPLIER_ID    PARTNUM      PRICE
----------- ---------- ----------
         10        100       1000

到此,关于“Oracle12C新特性有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle12C新特性有哪些

本文链接: https://www.lsjlt.com/news/64716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle12C新特性有哪些
    这篇文章主要介绍“Oracle12C新特性有哪些”,在日常操作中,相信很多人在Oracle12C新特性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle12C新...
    99+
    2024-04-02
  • oracle12c新特性指的是哪些
    这篇文章给大家介绍oracle12c新特性指的是哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 一、第一部分   1. 在线重命名和重新定位活跃数据文件  不同于以往的版本,在...
    99+
    2024-04-02
  • JDK1.5有哪些新特性
    本篇内容主要讲解“JDK1.5有哪些新特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDK1.5有哪些新特性”吧!  1.泛型(Generic)  C++通过模板技术可以指定集合的元素类型,...
    99+
    2023-06-03
  • css3新特性有哪些
    这篇文章将为大家详细讲解有关css3新特性有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   CSS3的新特征有:1、圆角效果;2、图形化边界;3、块阴影与文字阴...
    99+
    2024-04-02
  • CSS3有哪些新特性
    这篇文章主要介绍“CSS3有哪些新特性”,在日常操作中,相信很多人在CSS3有哪些新特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3有哪些新特性”的疑惑有所帮助!接...
    99+
    2024-04-02
  • Flex4新特性有哪些
    这篇文章将为大家详细讲解有关Flex4新特性有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Flex4新特性先来看看Flex4的一些消息吧:Flex4.0的代码编号为Spark,其有新的组件和皮肤架构...
    99+
    2023-06-17
  • ECMAScript新特性有哪些
    本篇内容介绍了“ECMAScript新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. Top-level Await在ES20...
    99+
    2023-07-02
  • Kubernetes1.5有哪些新特性
    这篇“Kubernetes1.5有哪些新特性”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Kubernetes1.5有哪些新...
    99+
    2023-06-28
  • Hibernate3有哪些新特性
    小编给大家分享一下Hibernate3有哪些新特性,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hibernate3新特性Hibernate3在产品的应用性上有了...
    99+
    2023-06-17
  • kubernetes1.4有哪些新特性
    这篇文章主要介绍“kubernetes1.4有哪些新特性”,在日常操作中,相信很多人在kubernetes1.4有哪些新特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”kubernetes1.4有哪些新特性...
    99+
    2023-06-27
  • PHP8.1新特性有哪些
    这篇文章主要为大家展示了“PHP8.1新特性有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP8.1新特性有哪些”这篇文章吧。当大多数人的 Linux ...
    99+
    2024-04-02
  • Swagger3.0有哪些新特性
    这篇文章主要讲解了“Swagger3.0有哪些新特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swagger3.0有哪些新特性”吧!支持 OpenAPI...
    99+
    2024-04-02
  • JavaScript新特性有哪些
    这篇文章主要介绍“JavaScript新特性有哪些”,在日常操作中,相信很多人在JavaScript新特性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScri...
    99+
    2024-04-02
  • jQuery1.6.4有哪些新特性
    本篇内容介绍了“jQuery1.6.4有哪些新特性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Data:...
    99+
    2024-04-02
  • Vue3.2有哪些新特性
    本篇内容介绍了“Vue3.2有哪些新特性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一个:<script setup> 正式...
    99+
    2023-06-26
  • Laravel10有哪些新特性
    今天小编给大家分享一下Laravel10有哪些新特性的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Laravel 10 发布...
    99+
    2023-07-04
  • PHP8.2有哪些新特性
    这篇“PHP8.2有哪些新特性”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP8.2有哪些新特性”文章吧。null和fa...
    99+
    2023-07-02
  • Android3.1新特性有哪些
    Android 3.1(Honeycomb)是Android操作系统的一个版本,主要用于平板电脑。以下是Android 3.1的主要...
    99+
    2023-09-13
    Android
  • html5有哪些新特性
    本教程操作环境:windows7系统、HTML5版、Dell G3电脑。HTML5的十大新特性 为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如: 图形的绘制,多媒体内容,更好的页面结构,更好的形式 处理,和几个api...
    99+
    2023-05-14
    html5
  • oracle18c新特性有哪些
    oracle18c新特性有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle宣布Database...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作