首页 > 数据库 > 数据库开发技术 > 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
在SQL执行成功后,sqlplus 中返回SQL id.

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

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

Sequence SCALE EXTEND ? 去年8月份就写过一篇不再描述 可以移步这里
sequence 可以reset了,不用删了重建。

只读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。

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

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


-- over
原文作者:ANBOB手记;如有侵权,请联系管理员删除。