Oracle 18c 新特性 (一)7个小特性

oracle 18c备受关注,Oracle OOW上宣传的第一个自治数据库也是基于oracle 18c(实际oracle 18c不是自治数据库)。刚过春节oracle 18c只发布了在Oracle Cloud 和Oracle Exadata等Engineered Systems上版本,这也是之前我weibo(@weejar)调侃到以后的大版本第一版都是在云端和Engineered Systems首发,也就解决了出.1 版普遍不敢使用的尴尬^_^。

因当前oracle 18c on-premise 还没正式发布,我只是用XD版简单测试几个小功能:

  • Feedback sql id

  • private temporary table

  • CANCEL SQL statement

  • SEQUENCE增强

  • Read-only Oracle Home (ROOH)

  • DBMS_SESSION.SLEEP

  • Inline External Table


sys@cdb$root:anbob18c>  SELECT BANNER FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production


 1,Feedback sqlid

在SQL执行成功后,sqlplus 中返回SQL id.

2.  CANCEL SQL statement

18c 引入CANCEL SQL statement ,终止正在运行的SQL,而不是会话。

3,  private temporary table

在内存中创建的会话级和事务级临时表, 在会话或事务结束时会根据设置而丢弃。 有点像SQL server Tsql存储过程中的的临时表。有别于global temporary table,私有临时表在其它会话对象都不存在,表名只能是指定的参数开头。

4, SEQUENCE增强

Sequence SCALE EXTEND ? 去年8月份就写过一篇不再描述 可以移步这里

sequence 可以reset了,不用删了重建。

5, Read-only Oracle Home (ROOH)

只读ORACLE HOME是oracle 软件安装一大改进,ORACLE BASE不再允许和HOME同一个目录,同样也简化了安装。 对于Docker容器类环境非常合适, 把ORACLE HOME只读而把配置文件到放外面oraclebasehome下,更容易管理空间, 通过克隆Oracle Home轻松部署。
缺省默认ORACLE_HOME是read-write 模式,如果要启动read-only OH, 需要在安装完软件而创建数据库前用roohctl 工具改变,否则会提示

虽然是roohctl 有一个force 选项(undocumented),但是转换后参数文件也不会转移到orabasehome下。roohctl工具在12.2时就已悄悄引入,只是到了18c -disable补去掉实际功能还存在。

启动方法

禁用方法
[oracle@VM181 18c]$ roohctl -disable

启动了Read Only Oracle Home后,配置文件会在ORACLEBASEHOME /dbs下和以前一样保证唯一性。只不过oraclebasehome 在只读模式下ORACLE_BASE,而读写模式下是ORACLE_HOME 路径。 可以使用orabaseconfig查看orabasehome配置路径。同样可以查看orabasetab文件,如果最后一位是Y 说明是ROOH。

6, DBMS_SESSION.sleep

在oracle 18c中sleep 存储过程填加到DBMS_SESSION PACKAGE中, 这样所有会话都可以直接使用,不需要再授权DBMS_LOCK PACKAGE。

7, Inline External Table

inline external table允许把外部表的定义写在SQL中,而不用先创建外部表对象。

-- over

请使用浏览器的分享功能分享到微信等