ABAP 7.52 中之Open SQL新特点。ABAP 7.52 中之Open SQL新特性。

by admin on 2018年10月5日

S/4 HANA 1709 已经以几个月前发布,随之而来的是ABAP 7.52。

S/4 HANA 1709 已经以几单月前发布,随之而来的是ABAP 7.52。

本文翻译了履新文档中关于Open SQL的局部。

本文翻译了创新文档中有关Open SQL的片段。

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

假若读者是Open SQL的初手,请不要从本文看起。更合适的科目是:A complete
guide to OpenSQL statements – Step-by-step tutorial with
screenshots

 

 

正文链接:http://www.cnblogs.com/hhelibeb/p/7941300.html

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

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 ).

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操作符。

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.

 

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的过滤条件现在可以于路径表达式中指定。

4,路径表达式

以下特点现在以路表达式(path
expression)中可用:

  • 在传参的空部分、属性方括号的空白部分及斜杠\眼前的岗位,路径表达式可以分开为多只代表码行。
  • 靶数据也是CDS表函数(table
    function)的时刻,也可以使用Association了。
  • 参数可以当路子表达式association的尾传递。由此可指定带有参数的CDS
    entities作为association的数据源。
  • 当路表达式中,现在可以指定join表达式的cardinality和档次作为性能。
  • association的过滤条件现在得于路径表达式中指定。

5,访问控制

初的重中之重字WITH PRIVILEGED
ACCESS
可关闭CDS的访问控制。

5,访问控制

新的要紧字WITH PRIVILEGED
ACCESS
可以关闭CDS的访问控制。

6,子查询中之ORDER BY和UP TO, OFFSET

在子查询中,现在可以动用ORDER BY子句和叠加项UP TO,
OFFSET了。不过,不是持有数据库都支持在子查询中运行ORDER BY。

在意:在子查询中,UP TO只能用在ORDER BY子句后,附加项OFFSET也不得不当UP
TO后面指定。

6,子查询中之ORDER BY和UP TO, OFFSET

在子查询中,现在得以ORDER BY子句和叠加项UP TO,
OFFSET了。不过,不是享有数据库都支持在子查询中运作ORDER BY。

顾:在子查询中,UP TO只能用当ORDER BY子句后,附加项OFFSET也不得不于UP
TO后面指定。

7,LFET OUT JOIN中的Cardinality

在LFET OUTER JOIN中,可以就此附加项ONE TO MANY指定Cardinality。它可于SAP
HANA识别为同种植优化说明。

7,LFET OUT JOIN中的Cardinality

以LFET OUTER JOIN中,可以就此附加项ONE TO MANY指定Cardinality。它可以让SAP
HANA识别为同样种优化说明。

8,SELECT列表中的FOR ALL ENTRIES IN和字符串

以以前的严模式语法检查备受,SELECT语句之叠加项FOR
ALL ENTRIES
IN不克与SELECT列表中类型为STRING和RAWSTRING或者LCHR和LRAW的排列一起出现。现在者限制已经给移除,语法检查就会指向这提醒一个警告,而未是漏洞百出。

8,SELECT列表中的FOR ALL ENTRIES IN和字符串

每当以前的严苛模式语法检查吃,SELECT语句的附加项FOR
ALL ENTRIES
IN不克及SELECT列表中类型为STRING和RAWSTRING或者LCHR和LRAW的排一起出现。现在这范围已经给移除,语法检查才会指向是提示一个警示,而休是大错特错。

9,严格模式之语法检查

若果您用到了面列有之Open SQL中的任一新特性,语法检查会以严厉模式运作。

9,严格模式的语法检查

设若您用到了方列有底Open SQL中之任一新特性,语法检查会以严厉模式运行。

10,Client处理

在切换Client读取CDS entities时,附加项USING
CLIENT
CLIENT
SPECIFIED
会晤以以下(更严格的)规则:

  • CDS访问控制不会见于跨Client访问时工作。因此,附加项USING
    CLIENT
    CLIENT
    SPECIFIED
    独会以CDS
    entities的访问控制被关闭的时候使用,即注解为AccessControl.authorizationCheck.#NOT_ALLOWED,或者查询语句被利用了高达文5中的WITH
    PRIVILEGED
    ACCESS
    时。
  • 路表达式只能以电动Client处理打开的当儿下。不得以使CLIENT
    SPECIFIED
    ,以防路径表达式中之association中的FROM子句被的对象数是凭定Client(Client-specific)的数据源(?),association的源数据源也无可以是赖定客户端的。

10,Client处理

在切换Client读取CDS entities时,附加项USING
CLIENT
CLIENT
SPECIFIED
见面采用以下(更严峻的)规则:

  • CDS访问控制不会见当跨Client访问时工作。因此,附加项USING
    CLIENT
    CLIENT
    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

 

11,Open SQL中的代办服务

类CL_OSQL_REPLACE可以在ABAP
Unit单元测试中将数据库访问重定向到访问其它数据库的Open SQL。

此类只能当测试接近吃使。

以身作则程序:DEMO_CL_OSQL_REPLACE

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图