1,使用 data_source~*指定列

在7.40, SP08中,可以在SELECT语句中使用data_source~*来指定选取不同的数据库表、视图的全部列来作为结果集。它也可以和单独指定的列col_spec结合(通过聚合表达式)。

当在结果集使用了data_source~*的时候,语法检查会以严格模式运行。

2,SELECT...INTO后的内联声明

根据SELECT语句的返回结果集,现在可以使用DATA(...)以及转义前缀@来内联声明数据对象、结构、内表。比如:

SELECT * FROM sflight INTO @DATA(ls_sflight) WHERE connid = 'AA'.

3,SQL表达式

在7.40, SP05中引入的SQL表达式,现在扩充了以下内容:

  • 操作符CASE可以用于执行复杂case(searched case)和简单case
  • 可以在GROUP BY后指定SQL表达式
  • 可以在SELECT列表中同时指定SQL表达式和聚合表达式
  • 可以在SELECT列表或者HAVING子句中指定SQL表达式作为聚合功能(比如avg)参数

如果使用了任一新特性,语法检查将以严格模式运行。

4,用参数读取CDS视图

从7.40, SP08开始,CDS视图可以在定义时带有使用时分配实参的输入参数。为了使该特性可用,在SELECT的data source可选项部分要添加一个由括号包含起来的、由逗号分割的列表:

    ( pname1 = act1, pname1 = act2, ... )

因为不是所有数据库系统都支持带有参数的视图,现有一个新类 CL_ABAP_DBFEATURES 和它的方法 USE_FEATURES,它会探测当前数据库系统的支持情况。此外,通过参数访问视图会触发语法检查的警告;该警告可通过pragma隐藏。

5,移除限制

以下先前存在的限制已经移除:

  • 函数表达式:

    • 从7.40, SP08开始,负号 - 可以直接地放置在一个算术表达式的运算数前,而不需要放在其它算术运算符的后面。
    • 从7.40, SP08开始,简单case中的operand1, operand2也可以是SQL表达式。
    • 从7.40, SP08开始,SQL表达式也可以和聚合表达式或者GROUP BY一起指定。
  • joins:
    • 从7.40, SP08开始,操作符LIKE和IN可以在ON条件中使用。
    • 从7.40, SP08开始,单独的比较可以通过OR连接或者通过NOT否定。
    • 从7.40, SP08开始,外联结不再需要包含至少一个来自左右侧表的列的比较。
  • 动态WHERE条件:
    • 子查询也可以动态指定了。

如果用到了以上的新规则,那么语法检查将以严格模式运行。

6,INTO子句的位置

从7.40, SP08开始,INTO子句也可以位于SELECT语句的最末位置。在这种情况下,SELECT语句的可选项要指定在INTO的后面。

如果将INTO从句作为最后一个子句,语法检查将以严格模式运行。

7,语法规则的进一步严格检查

从7.40, SP08开始,以下的语法构造将包含错误,并产生语法错误或运行时错误。

  • WHERE条件的正确性
    聚合表达式之外的在HAVING从句中指定的列必须也在GROUP BY中指定。在7.40, SP08之前,这不会被静态语法检查记录,但是会触发一个可捕获的异常。从7.40, SP08开始,这样产生一个语法检查警告并且触发在严格模式之外无法处理的异常。
    例如:

    DATA itab TYPE TABLE OF scarr.
    SELECT *
    FROM scarr
    INTO TABLE itab
    HAVING carrid = 'LH'.

8,语法检查的“严格模式”

如果在Open SQL中使用了本文中列出的任一新特性,语法检查将以严格模式运行。严格模式比标准模式有着更严格的语句处理。

9,可比较类型

数据库会执行一个用于比较的可比较类型的表。在各种情况下,数据库系统会判断比较的双方是否可比较,如果不可比较,将产生语法错误(在严格模式下)或者语法警告。

本文链接:http://www.cnblogs.com/hhelibeb/p/6757244.html

参考链接:ABAP News for 7.40, SP08 – Open SQL

       ABAP 7.50 新特性

       ABAP 7.52 中的Open SQL新特性

       ABAP 7.53 中的ABAP SQL(原Open SQL)新特性

ABAP 7.40, SP08 中的 Open SQL 新特性的更多相关文章

  1. ABAP 7.52 中的Open SQL新特性

    S/4 HANA 1709 已经在几个月前发布,随之而来的是ABAP 7.52. 本文翻译了更新文档中有关Open SQL的部分 本文链接:http://www.cnblogs.com/hhelibe ...

  2. ElasticSearch7.3学习(三十)----ES7.X SQL新特性解析及使用Java api实现sql功能

    一.ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties&quo ...

  3. 简单理解ECMAScript2015中的箭头函数新特性

    箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...

  4. Java 9中的 9个 新特性

    Java 9 中的 9个 新特性 java 7 2011发布,Java 8 2014发布,java9发布于2017年9月21日. 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它 ...

  5. 【译】.NET 5. 0 中 Windows Form 的新特性

    自从 Windows Form 在 2018 年底开源并移植到 .NET Core 以来,团队和我们的外部贡献者都在忙于修复旧的漏洞和添加新功能.在这篇文章中,我们将讨论 .NET 5.0 中 Win ...

  6. 【C#】第1章 VS2015中C#6的新特性

    分类:C#.VS2015 创建日期:2016-06-12 一.简介 VS2015内置的C#版本为6.0,该版本提供了一些新的语法糖,这里仅列出个人感觉比较有用的几个新功能. 二.几个很有用的新特性 注 ...

  7. Visual Studio 2015 RC中的ASP.NET新特性和问题修正

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 微软在Build大会上发布了Visual Studio 2015 RC,这也预示着Visual Studio 201 ...

  8. 在 vs2017 中使用 C# 7 新特性。

    几个概念区分: 1.C#   C# 是一种.net 语言,与此类似的还有 vb,F#.不同版本的语言要配合相应的解释器才能发挥作用.目前 最新版本 为 C# 7.3. 2.VS        VS 是 ...

  9. Oracle12c中性能优化增强新特性之数据库智能闪存

    智能闪存功能最初在XD中引入.从Oracle11.2.0.2开始,除了用于XD存储,还可用于任何闪盘.Oracle12c中,不需卷管理器就可以使用闪盘. 1.  简介 智能闪存在solaris和lin ...

随机推荐

  1. c# 解密微信encryptedData字段

    参考链接:https://www.cnblogs.com/jetz/p/6384809.html 我写了一个工具方法,直接照搬链接中的方法,还有一个工具类. public class Encrypt ...

  2. [android] 分析setting源代码获取SD卡大小

    保存文件到sd卡需要判断sd卡的大小,通过查看android系统的自带应用的源代码,得到方法,sdk下面的source是sdk的源代码,包含的是android.Jar下面的所有class的源代码.在a ...

  3. (10)Microsoft office Word 2013版本操作入门_word表格

    1.套用word模板  :点击[文件]---[新建]---选择合适模板创建即可. word中插入[书法字帖]: 2.插入表格 :点击[插入]---[表格]输入行和列 ,固定列宽为“自动”时 默认沾满左 ...

  4. Mybatis框架基础支持层——反射工具箱之Reflector&ReflectorFactory(3)

    说明:Reflector是Mybatis反射工具的基础,每个Reflector对应一个类,在Reflector中封装有该类的元信息, 以及基于类信息的一系列反射应用封装API public class ...

  5. Javascript继承5:如虎添翼----寄生式继承

    /* * 寄生式继承 * 其实就是对原型继承的第二次封装,在封装过程中对继承的对象进行了扩展. * 也存在原型继承的缺点!! * 这种思想的作用也是为了寄生组合式继承模式的实现. */ //声明基对象 ...

  6. SpringMVC 异步与定时使用示例

    1.Spring 的xml配置: <aop:aspectj-autoproxy/> <task:annotation-driven executor="annotation ...

  7. Vue2 几种常见开局方式

    在SF问题中看到了一个关于vue-cli中的template问题,问题是这样的:用vue-cli工具生成的main.js中: import Vue from 'vue' import App from ...

  8. canvas实现黑客帝国矩形阵

    在博客园看到了车大棒的写了一篇关于实现黑客帝国矩形阵,觉得canvas还是有一些奇妙的地方所在,故做个笔记记录一下. 实现的效果如下: 真的是一两行关键的代码添加就能实现意想不到的效果. 由于是can ...

  9. 如何为你的 Vue 项目添加配置 Stylelint

    如何为你的 Vue 项目添加配置 Stylelint 现在已经是 9102 年了,网上许多教程和分享帖都已经过期,照着他们的步骤来会踩一些坑,如 stylelint-processor-html 已经 ...

  10. 2018-11-27 中文代码示例之Programming in Scala笔记第七八章

    续前文: 中文代码示例之Programming in Scala学习笔记第二三章 中文代码示例之Programming in Scala笔记第四五六章. 同样仅节选有意思的例程部分作演示之用. 源文档 ...