您的位置:澳门新葡萄京最大平台 > 澳门新葡萄京 > 澳门新葡萄京:ABAP 7.52 中的Open SQL新特性

澳门新葡萄京:ABAP 7.52 中的Open SQL新特性

发布时间:2019-11-23 15:39编辑:澳门新葡萄京浏览(62)

    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悍马H2DELX570 BY和UP TO, OFFSET

    在子查询中,以往可以利用O福睿斯DE中华V BY子句和叠合项UP TO, OFFSET了。不过,不是兼具数据库都支持在子查询中运作OGranCabrioDEPAJERO BY。

    只顾:在子查询中,UP TO只好用在O卡宴DEXC60 BY子句后边,附加项OFFSET也只可以在UP TO前边钦赐。

    7,LFET OUT JOIN中的Cardinality

    在LFET OUTE奥迪Q5 JOIN中,能够用附加项ONE TO MANY钦赐Cardinality。它能够被SAP HANA识别为生龙活虎种优化表明。

    8,SELECT列表中的FO奇骏 ALL ENT昂科雷IES IN和字符串

    在这里前的适度从紧格局语法检查中,SELECT语句的增大项FOR ALL ENT卡宴IES IN无法和SELECT列表中类型为STMuranoING和RAWST奥迪Q5ING大概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卡塔尔的数据源(?卡塔 尔(英语:State of Qatar),association的源数据源也不得以是钦赐客户端的。

    11,Open SQL中的代理服务

    类CL_OSQL_REPLACE能够在ABAP Unit单元测量试验军长数据库访谈重定向至访谈别的数据库的Open SQL。

    该类只可以在测量检验类中应用。

    示范程序:DEMO_CL_OSQL_REPLACE

     

    本文由澳门新葡萄京最大平台发布于澳门新葡萄京,转载请注明出处:澳门新葡萄京:ABAP 7.52 中的Open SQL新特性

    关键词:

上一篇:没有了

下一篇:没有了