本文是甲骨文数据库12 c新特性的系列文章的第四篇,作者将重点介绍一些对开发者而言非常有用的新特性。相关甲骨文数据库12 c新特性总结(一),甲骨文数据库12 c新特性总结(二),甲骨文数据库12 c新特性总结(三)
<强>第四部分包括:强>
-
<李>
如何在子表包含数据的情况下截断一个主表
李>
<李>
限制头n个查询结果的记录
李>
<李>
SQL * Plus的各种增强
李>
<李>
会话级序列
李>
<李>
与语句的改善
李>
<李>
扩展数据类型
李>
<强> 强>
在之前的版本中,在子表引用一个主表以及子表存在记录的情况下,是不提供截断此主表操作的。而在12 c中的带有<强>级联>强操作的<强> 强>可截断表以截断主表中的记录,并自动对子表进行递归截断,并作为<强>在级联删除>强服从外键引用。由于这是应用到所有子表的,所以对递归层级的数量是没有帽子的,可以是孙子表或是重孙子表等等。
这一增强摈弃了要在截断一个主表之前先截断所有子表记录的前提。新的<>强级联>强语句同样也可以应用到表分区和子表分区等。
完成,TRUNCATE TABLE  PARTITION 级联;
如果对于子表的外键没有定义在级联删除<强> 强>,选项,便会抛出一个ora - 14705错误。
<强> 强>
在之前的版本中有多种间接手段来对顶部或底部记录获取头n个查询结果。而在12 c中,通过新的<>强取第一个下| | % >强语句简化了这一过程并使其变得更为直接。为了从EMP表检索排名前10的工资记录,可以用以下新的SQL语句:
FETCH FIRST 10, ROWS ;
以下示例获取排名前N的所有相似的记录。例如,如果第十行的工资值是5000,并且还有其他员工的工资符合排名前N的标准,那么它们也同样会由有联系语句获取。
FETCH FIRST 10, ROWS ONLY WITH 关系;
以下示例限制从EMP表中获取排名前10%的记录:
FETCH FIRST 10, PERCENT ROWS ;
以下示例忽略前5条记录并会显示表的下5条记录:
OFFSET 5, ROWS FETCH  NEXT 5, ROWS ;
所有这些限制同样可以很好的应用于PL/SQL块。
SELECT sal  BULK COLLECT INTO  sal_v 得到EMP
FETCH FIRST 100年,ROWS 只有,,
结束;
<强> 强>
SQL * Plus的隐式结果:12 c中,在没有实际绑定某个RefCursor的情况下,SQL * +从一个PL/SQL块的一个隐式游标返回结果。这一新的<强> dbms_sql。return_result >强过程将会对PL/SQL块中由选择语句查询所指定的结果加以返回并进行格式化。以下代码对此用法进行了描述:
res1 sys_refcursor,
BEGIN
open res1  for SELECT eno ename, sal 得到电磁脉冲;,