当前位置:澳门新萄京网址 > 澳门新萄京网址 > 【澳门新萄京网址】ABAP 7.52 中的Open SQL新特性

【澳门新萄京网址】ABAP 7.52 中的Open SQL新特性

文章作者:澳门新萄京网址 上传时间:2019-11-01

S/4 HANA 1709 已经在多少个月前公布,随之而来的是ABAP 7.52。

正文翻译了翻新文书档案中关于Open SQL的有的。

万风流倜傥读者是Open SQL的新手,请不要从本文看起。更适用的课程是:A complete guide to OpenSQL statements – Step-by-step tutorial with screenshots

 

本文链接:

1,内表作为数据源

现行反革命能够将内表钦点为查询语句的数据源。假如内表数据须求传递给数据库的话,则只好在有的数据库上运转。

例子:

DATA itab TYPE HASHED TABLE OF scarr
          WITH UNIQUE KEY mandt carrid.

IF NOT cl_abap_dbfeatures=>use_features(
         EXPORTING
           requested_features =
             VALUE #( ( cl_abap_dbfeatures=>itabs_in_from_clause ) ) ).
  cl_demo_output=>display(
    `System does not support internal tables as data source` ).
  RETURN.
ENDIF.

itab =  VALUE #( ( carrid = 'LH' carrname = 'L.H.' )
                 ( carrid = 'UA' carrname = 'U.A.' ) ).

SELECT scarr~carrid, scarr~carrname, spfli~connid
       FROM @itab AS scarr
         INNER JOIN spfli ON scarr~carrid = spfli~carrid
       INTO TABLE @DATA(result)
       ##db_feature_mode[itabs_in_from_clause].

cl_demo_output=>display( result ).

2,关系表明式

条件表明式现支持以下情状:

  • 能够对字符类数据类型大小比较,况且不再约束N类型。
  • 操作符BETWEEN不再限定N类型,SQL表达式以后得以在侧边使用了。
  • 今昔也支撑LIKE操作符。

3,转变函数

新的类型转变函数BINTOHEXHEXTOBIN明天得以在SQL表明式中把byte strings调换为character strings,这种功能在CAST表明式中是不可行的。

示范程序,能够看来二种转移情势的结果是均等的:

 SELECT SINGLE id AS uuid32, hextobin( id ) AS uuid16
       FROM iwreferenc
       WHERE tcode = 'SE38'
       INTO @DATA(wa).

IF sy-subrc = 0.
  DATA uuid16 LIKE wa-uuid16.
  cl_system_uuid=>convert_uuid_c32_static(
    EXPORTING
      uuid          =     wa-uuid32
    IMPORTING
      uuid_x16      =     uuid16 ).
  ASSERT wa-uuid16 = uuid16.
ENDIF.

 

4,路线表明式

以下特点今后在路子表明式(path expression)中可用:

  • 在传参的空域部分、属性方括号的空域部分和斜杠前的岗位,路线表达式能够分开为多少个代码行。
  • 指标数据也是CDS表函数(table function)的时候,也足以利用Association了。
  • 参数能够在路线说明式association的末端传递。由此能够钦命带有参数的CDS entities作为association的数据源。
  • 在路径表明式中,现在能够钦赐join表明式的cardinality和连串作为质量。
  • association的过滤条件将来能够在路径表明式中钦命。

5,访谈调节

新的严重性字WITH PRIVILEGED ACCESS能够关闭CDS的访谈调整。

6,子查询中的O汉兰达DEHaval BY和UP TO, OFFSET

在子查询中,现在得以采取OLX570DE福睿斯 BY子句和叠合项UP TO, OFFSET了。可是,不是富有数据库都扶植在子查询中运作O奥迪Q3DE科雷傲 BY。

注意:在子查询中,UP TO只好用在O昂科拉DE奥迪Q5 BY子句前边,附加项OFFSET也只好在UP TO前边内定。

7,LFET OUT JOIN中的Cardinality

在LFET OUTESportage JOIN中,可以用附加项ONE TO MANY钦定Cardinality。它能够被SAP HANA识别为生机勃勃种优化表达。

8,SELECT列表中的FO翼虎 ALL ENT卡宴IES IN和字符串

在这里前的严俊格局语法检查中,SELECT语句的叠合项FOR ALL ENTLacrosseIES IN不可能和SELECT列表中类型为ST中华VING和RAWST安德拉ING恐怕LCH福睿斯和LRAW的列一齐现身。今后以此约束已经被移除,语法检查只会对此提醒二个警戒,并不是荒诞。

9,严刻方式的语法检查

借使您用到了地方列出的Open SQL中的任生龙活虎新性子,语法检查会以严苛形式运作。

10,Client处理

在切换Client读取CDS entities时,附加项USING CLIENTCLIENT SPECIFIED会使用以下(更严谨的)准绳:

  • CDS访谈调控不会在跨Client访问时工作。由此,附加项USING CLIENTCLIENT SPECIFIED只可以在CDS entities的访谈调整被关闭的时候利用,即表明为AccessControl.authorizationCheck.#NOT_ALLOWED,恐怕查询语句中应用了上文5中的WITH PRIVILEGED ACCESS时。
  • 途径表明式只好在活动Client处理展开的时候利用。不得以行使CLIENT SPECIFIED,避防路径表达式中的association中的FROM子句中的目的数据是内定Client(Client-specific)的数据源(?),association的源数据源也不得以是钦点顾客端的。

11,Open SQL中的代理服务

澳门新萄京网址,类CL_OSQL_REPLACE能够在ABAP Unit单元测验大校数据库访谈重定向至访问其它数据库的Open SQL。

此类只好在测验类中央银行使。

亲自过问程序:DEMO_CL_OSQL_REPLACE

 

本文由澳门新萄京网址发布于澳门新萄京网址,转载请注明出处:【澳门新萄京网址】ABAP 7.52 中的Open SQL新特性

关键词: