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. [转]Docker(三):Dockerfile 命令详解

    本文转自:https://blog.csdn.net/ityouknow/article/details/79600406 上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dock ...

  2. camera测试之颜色还原

    测试目的:camera对色彩的还原能力 测试主要设备:24色色卡,灯箱 测试环境:1.D65/CW/A光源,照度为600±100lux,整个chart表面的亮度值相差小于10% 2.D65光源,照度为 ...

  3. WPF BackGroundWord 异步加载更新进度条示例

    <Window x:Class="AsynchronousLoading.MainWindow" xmlns="http://schemas.microsoft.c ...

  4. Linq To Xml操作XML增删改查

    对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...

  5. IIS发布网站 报错500.19 错误解决过程记录

    首先先报上我的环境 WindowsServer 2012 IIS 8.5 网站是FrameWork 4.0 发布网站后浏览,报错信息如下: 解决过程记录如下: 1.看到这个问题首先想到的是权限问题,设 ...

  6. c#等程序中的关于时间的最大值【DateTime.MaxValue】和最小值【DateTime.MinValue】

    运行之后得到的结果 c# DateTime.MaxValue:// :: DateTime.MinValue:// :: Sql Server DateTime 类型必须介于 1/1/1753 12: ...

  7. Java学习笔记之——方法重载

    方法重载: overload 1. 方法签名 组成:方法名(参数列表) 参数列表不同分为哪些情况? (1)有无参数 (2)参数的类型 (3)参数的个数 (4)参数的顺序(前提是类型不一样) 2.方法重 ...

  8. Java基础篇——集合浅谈

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10703558.html,否则将追究法律责任!!! Set(基于Map来实现的,不细说) H ...

  9. Vue项目build打包部署到Tomcat后,刷新报404错误解决方案

    问题描述: 一.更新依赖,并打包项目 cd /root/.jenkins/workspace/v-test;npm installcd /root/.jenkins/workspace/v-test; ...

  10. 创建Aurelia项目

    什么是Aurelia? Aurelia 是一个新的开源的,基于web标准的mvvm框架,是一个现代化的js模块的集合. Aurelia提供了丰富的plugin,例如国际化,验证,模态框,UI可视化等. ...