本文提供了Oracle Database 12c第2版(12.2)中引入的SQL / JSON函数的示例。...建立测试表及数据 本文中的示例使用以下表: JSON_OBJECT函数 JSON_OBJECT函数将逗号分隔的键值对列表转换为JSON中的对象成员。...JSON_OBJECTAGG聚合函数 JSON_OBJECTAGG聚合函数创建一个JSON对象,其中包含通过聚合每行中的键值对形成的对象成员列表。...RETURNING子句 SQL /JSON函数可以可选地包括RETURNING子句,以指定如何返回值。所有返回都可能使用BYTE或CHAR指定的不同大小的VARCHAR2值。...FORMAT JSON子句 FORMATJSON子句是可选的,用于“语义清晰度”。 使用数字做为Key SQL /JSON函数不接受数字作为Key。
题目 在Oracle中,当需要使用显式游标更新或删除游标中的行时,声明游标时指定的SELECT语句必须带有下边选项中的哪一个子句() A、WHERE CURRENT OF B、INTO C、FOR...带有FOR UPDATE才能执行DML操作,显然,本题的答案为C。...About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/ ● 本系列题目来源于作者的学习笔记
今天小麦苗给大家分享的是在Oracle 12c中,在RMAN方面有哪些增强的新特性?。 在Oracle 12c中,在RMAN方面有哪些增强的新特性?...同样地,在Oracle 12c中引入了3个新的系统用户SYSBACKUP、SYSDG和SYSKM,其中,SYSKM可以执行与透明数据加密密钥(Transparent Data Encryption keystore...(二)可以直接在RMAN中执行SQL语句 在Oracle 12c中,可以在不需要SQL前缀的情况下在RMAN中执行任何SQL和PL/SQL命令。当然,原来的加SQL前缀的方式依然有效。...; RMAN> ALTER SYSTEM SWITCH LOGFILE; (三)在RMAN中提供了表级别恢复(RECOVER TABLE) 在Oracle 12c中,在发生drop或truncate的情况下...(五)通过网络远程恢复数据库(Restore/Recover from Service) 在Oracle 12c中,可以在主数据库和备用数据库之间用一个服务名重新获得或恢复数据文件、控制文件、参数文件(
最近,Oracle数据库优化器的产品经理 Nigel Bayliss 发布了一篇文档,介绍:Setting up the Oracle Optimizer for PoCs - 在PoC测试中优化器参数的设置和调节...优化器是 Oracle 数据库的核心组件,我们一起来看一看 12c 有哪些优化器的变化。 ?...在 Oracle 官方文档中,有这样一个举例,可以更清晰的看到这个过程和含义: ? 其动态变化过程如下图所示: ?...在 Oracle 12.2 和 18c 中,推荐的缺省行为都已改变,自适应的执行计划,缺省未开启的自适应统计信息: ?...在 12c 和 18c 中,SQL计划管理的演变是自动化的: - 如果您正在使用SQL计划管理(SPM),则替代计划可能会自动演变并被接受 - 您可能想要禁用自动优化作业或防止接受新计划... ?
近期同事在讨论如何在PostgreSQL中一张大表,添加一个带有not null属性的,且具有缺省值的字段,并且要求在秒级完成。...因为此,有了以下的实验记录: 首先我们是在PostgreSQL 10下做的实验: postgres=# select version();...default 'test'; ALTER TABLE Time: 36803.610 ms (00:36.804) 明显看到时间花费相当长,其实PostgreSQL在这里将数据完全重写了,主要原因就是就是添加的字段带有...,如何快速添加这么一个字段: 首先,在这里我们涉及三张系统表,pg_class(表属性)、pg_attribute(列属性)、pg_attrdef(缺省值信息),接下来依次看一下三张表的信息: #pg_class...postgres=# alter table add_c_d_in_ms add a10 text; ALTER TABLE #如果添加not null属性的字段,则会检测其他字段属性,将会报错 postgres
题目 在Oracle 12c中,在RMAN方面有哪些增强的新特性?...答案 Oracle 12C的RMAN中新增了很多的新特性,分别如下所示: (一)新的备份用户特权(SYSBACKUP) 在Oracle 11gR2中,引入了SYSASM特权用来执行与ASM相关的特定操作...同样地,在Oracle 12c中引入了3个新的系统用户SYSBACKUP、SYSDG和SYSKM,其中,SYSKM可以执行与透明数据加密密钥(Transparent Data Encryption keystore...(二)可以直接在RMAN中执行SQL语句 在Oracle 12c中,可以在不需要SQL前缀的情况下在RMAN中执行任何SQL和PL/SQL命令。当然,原来的加SQL前缀的方式依然有效。...; RMAN> ALTER SYSTEM SWITCH LOGFILE; (三)在RMAN中提供了表级别恢复(RECOVER TABLE) 在Oracle 12c中,在发生drop或truncate的情况下
【关键字】pipelined【问题描述】Oracle PL/SQL中包含pipelined函数的对象迁移到YashanDB会出现不兼容现象。...【问题原因分析】Pipelined函数是一种特殊的表函数,以流方式返回结果,这样可以边处理数据边返回结果,提高性能。...嵌套表是一组同类型的元素的集合,适用于存储分组结果或批量处理数据时,可以在 PL/SQL 中遍历和操作这些数据。...YashanDB 不支持pipelined函数,若遇到pipelined函数,可以使用嵌套表来改写。...【解决/规避方法】scss 代码解读复制代码--Oracle 示例函数CREATE OR REPLACE TYPE "T_RET_TABLE" IS TABLE OF VARCHAR2 (4000)/CREATE
此部分包含以下主题: 关于ADO策略和IM列存储 在Oracle Database 12c第2版(12.2)中,ADO通过ADO策略管理IM列存储。...您只能在段级别创建具有INMEMORY 子句的ADO策略。 ADO和IM列存储的目的 从Oracle Database 12c第2版(12.2)开始,ADO将IM列存储管理为新的数据层。...关于ADO策略和IM列存储 在Oracle Database 12c第2版(12.2)中,ADO通过ADO策略管理IM列存储。您只能在段级别创建具有INMEMORY 子句的ADO策略。...· 用户定义的函数返回布尔值 ADO和IM列存储的目的 从OracleDatabase 12c Release 2(12.2)开始,ADO将IM列存储管理为新的数据层。...在SQL * Plus或SQLDeveloper中,使用必要的权限登录数据库。 2. 使用带有ILM ADD POLICY ... INMEMORY子句的ALTER TABLE语句。
题目部分 在Oracle中,有哪些常用的分析函数? 答案部分 分析函数是Oracle从8.1.6开始引入的一个新的概念,为分析数据提供了一种简单高效的处理方式。...在分析函数出现以前,实现相同的功能必须使用自联查询、子查询或者内联视图,甚至需要复杂的存储过程来实现。有了分析函数后,只要一条简单的SQL语句就可以实现了,而且在执行效率方面也有相当大的提高。...Oracle的分析函数主要用于报表开发和数据仓库。分析函数的功能强大,可以用于SQL语句的优化,在某些情况下,能达到事半功倍的效果。...,除了ORDER BY子句的运算外,分析函数在SQL语句中将会最后执行。...LAG和LEAD函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。
and Table Clusters》 历史文章: 《《Oracle Concept》第二章 - 21 (12c内容补充)》 《《Oracle Concept》第二章 - 20 (12c内容补充)》...仅使用prod_id列不会节省I/O,因为prod_id是BY LINEAR ORDER子句的后缀。如下示例展示了数据库在表扫描中如何降低I/O。...通过交错排序聚簇一张事实表会让数据库使用一个特殊的函数在表扫描期间跳过维度列的值。...你能用示例中展示的部分语句对sales表进行交错排序。 ? 注意: 在BY INTERLEAVED ORDER子句中指定的列不需要在真实的维度表,但是他们必须通过主外键进行关联。...在之前的检索中,prod_category和cust_state_province列是展示在CREATE TABLE的部分聚簇定义。
题目 在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?...答案 Oracle 12c的数据泵新增了很多的新特性,分别如下所示: (1)在Data Pump中引入了新的TRANSFORM的选项DISABLE_ARCHIVE_LOGGING,这对于表和索引在导入期间提供了关闭...和impdp功能的输出信息中。...LOGTIME的可用值如下所示: ① NONE:默认值,指示输出中不包括时间戳,输出和之前的版本相似。 ② STATUS:时间戳包括在控制台输出中,但不会在日志文件中出现。...关于Oracle 12c的数据泵还有很多的新特性,例如压缩、加密、审计等,这里不再详细介绍,读者可参考作者的博客或阅读相关的官方文档进行学习。
延伸阅读 Oracle 12c R2版本 Application Containers 特性(二) Oracle 12c R2版本 Application Containers 特性(一) Application...Seed Application seed与CDB中的PDB$SEED类似,在使用Application seed做为Application PDBs的创建模板时,你可以快速且容易的创建一个满足要求的...我们可以在Application root中使用CREATE PLUGGABLE DATABASE带有AS SEED子句来创建Application seed,创建时,Application seed可以有如下几种来源...,比如CDB seed、克隆现有的PDB或non-CDB以及插入已拔出的PDB,在使用AS SEED子句创建Application seed时,不要需要为其指定名称,固定的命名规则为application_container_name...dba_objects 在12cR2版本里通过dba_objects中的APPLICATION、SHARING、CREATED_APPID以及CREATED_VSNID字段来判断对象是否是公共对象,以及属于哪个
在Oracle Database 12c R2版本中,Oracle带来新的Application Containers特性,该特性对原有的多租户功能进行了增强,在CDB root容器中可以创建一个叫做Application...root中,其内可以创建表、视图、函数等公共对象,然后可在Application PDBs中使用sync同步命令,来实现“Application”内的公共对象共享到Application PDBs中。...Install an Application 当使用alter pluggable database带有begin install子句时,即开始一个“Application”的安装,这里可以理解为一个区域的开始...如下示例,开始一个patch,并且在application内创添加表以及更改现存表的表结构: ? 删除Application内的表: ? 删除失败 结束patch: ? 查看patch信息 ?...“Application”中的公共对象进行删除操作,如果我们想对公共对象进行删除操作,可以使用UPGRADE子句对现有的“Application”进行升级,在升级的过程中,Oracle会首先自动创建Application
使用此语句对使用DBCA的一个优点是可以从脚本内创建数据库。在Oracle 12c版本中支持12c之前的非CDB数据库以及CDB容器数据库。因此创建方式略有不同。...一、12c手工创建非CDB数据库 步骤1:指定实例标识符(SID) ORACLE_SID的环境变量用于该实例从稍后可能创建并同时在同一主机计算机上运行其他Oracle Database实例区分开来。...$ export ORACLE_SID=nocdb $ export ORACLE_UNQNAME=nocdb 步骤2:确保设置所需的环境变量 根据您的平台,在启动SQL * Plus之前(根据后续步骤的要求...优选的二进制文件称为服务器参数文件。在此步骤中,您将创建一个文本初始化参数文件。在后面的步骤中,您可以从文本文件创建一个服务器参数文件。...125M,而root容器中为352M --seed中开启了自动扩展,sysaux也同样使用了一些不同于root容器的属性 --对于在seed中未明确指定的属性,则继承root容器数据文件属性 SEED
的SELECT中实际不需要表名的地方可以使用表DUAL,因为Oracle中的FROM子句是必须的。...Postgsql中可以将FROM子句丢弃。可以在postgres中创建一个视图作为这个表从而消除上述问题。这样就可以在不干扰Postgres的解析器情况下兼容Oracle的SQL。...迁移过程中,尽可能去掉“FROM DUAL”子句。因为和jual进行join比较奇怪。 ROWNUM和ROWID Oracle的虚拟列ROWNUM:在执行ORDER BY前读取数据时分配一个数值。...当需要在存储的PLpgSQL代码中进行单行检查时,需要在所有SELECT中的任何关键字INTO之后添加关键字STRICT。...空字符串与NULL Oracle中,strings()空和NULL在字符串内容中相同。可以将NULL和和一个字符串连接起来作为结果。但是在postgres中,这种情况得到的结果是NULL。
前言《Introduction to Oracle Database》的历史文章: 《《Oracle Concept》前言-12c内容补充》 《《Oracle Concept》前言介绍-7》 《《Oracle...索引扫描 在索引扫描中,数据库会在语句中指定索引列值,遍历索引来提取数据。如果数据库扫描索引,他会消耗N次IO来得到需要的值,这里N是B树索引的高度。这就是Oracle数据库索引的基本原则。...可以参考: 《Oracle Database Performance Tuning Guide》了解关于索引扫描的详细信息。 全索引扫描 在全索引扫描中,数据库会按序读取整个索引。...如果SQL中的谓词(WHERE子句)引用了索引中的一列,或者某些场景下未指定谓词,就会使用全索引扫描。由于全索引扫描中数据是按照索引键值排序的,因此这种扫描消除了排序。...例如,应用使用如下的检索语句,不包含ORDER BY子句中: ? last_name列拥有NOT NULL约束。
在 Oracle 20c 中对默认表空间的加密算法方面有所增强,可以通过设置: TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM,动态参数来定义表空间创建操作的默认加密算法...但是,并非在创建数据库部署时创建的所有表空间都被加密: 在 Oracle Database 11g 数据库中,创建数据库部署时创建的表空间均未加密。...在 Oracle Database 12c 第1版数据库中,创建数据库部署时创建的表空间均未加密。...在 Oracle Database 12c 第2版或更高版本的数据库中,只有在创建数据库部署时创建的 USERS 表空间才被加密。 其他表空间均未加密。...您可以通过在 CREATE TABLESPACE 命令中包含 USING 'encrypt_algorithm' 子句来指定另一种受支持的算法。
因此 Oracle 在每一个版本中,优化器都引入了新特性,本文将详细讲解 12C 中标量子查询自动转换的新特性的原理,优势,适用场景和案例分享。...1、12C 标量子查询自动转换说明 首先我们来看官方文档的说明: 标量子查询是出现在 SQL 语句的 SELECT 子句的子查询。...在 Oracle 12c 数据库中,标量子查询能够被展开,在这个例子中,SALES 表上的标量子查询被转换成一个 group-by 视图。group-by 视图确定会返回每组一行,正如标量子查询一样。...3、标量子查询自动转换适用场景 从上述测试的结果来看,在 12C 版本中,标量子查询因为优化器会自动改写所以性能将大大提高,也省去了我们在 11G 对标量子查询的优化中手工改成外连接。...由此可见,如果不是聚合函数在 12C 优化器也不会自动改写转换。
因此 Oracle 在每一个版本中,优化器都引入了新特性,本文将详细讲解 12C 中标量子查询自动转换的新特性的原理,优势,适用场景和案例分享。...1 12C 标量子查询自动转换说明 首先我们来看官方文档的说明: 标量子查询是出现在 SQL 语句的 SELECT 子句的子查询。...Oracle 11g 数据库中,对于 CUSTOMERS 表中 CUST_CREDIT_LIMIT 大于 50000 的每一行,在 SALES 表上的标量子查询都必须被执行。...在 Oracle 12c 数据库中,标量子查询能够被展开,在这个例子中,SALES 表上的标量子查询被转换成一个 group-by 视图。group-by 视图确定会返回每组一行,正如标量子查询一样。...由此可见,如果不是聚合函数在 12C 优化器也不会自动改写转换。
领取专属 10元无门槛券
手把手带您无忧上云