zoukankan      html  css  js  c++  java
  • ABAP CDS

    下表显示了ABAP CDS中CDS视图中字符串的潜在SQL函数,以及对参数的要求。函数的含义可以在字符串的SQL函数下找到。

    函数 参数类型 返回类型
    CONCAT(arg1, arg2) See below SSTRING if an argument has the type SSTRING, else CHAR with the length of the result.
    CONCAT_WITH_SPACE(arg1, arg2, spaces ) arg1, arg2: see below 

    spaces: positive numeric literal greater than 0 and less than or equal to 1331
    SSTRING if an argument has the type SSTRING, else CHAR with the length of the result.
    INSTR(arg, sub) arg: see below 

    sub: non-empty numeric literal
    INT4
    LEFT(arg, len) arg: see below 

    len: positive numeric literal greater than 0 and less than or equal to 1333
    SSTRING if arg has the type SSTRING, else CHAR with length len
    LENGTH(arg) See below INT4
    LPAD(arg, len, src) arg: see below 

    len: positive numeric literal greater than 0 and less than or equal to 1333 

    src: character Literal
    SSTRING if arg has the type SSTRING, else CHAR with length len
    LTRIM(arg, char) arg: see below 

    char: Character literal with length 1
    SSTRING if arg has the type SSTRING, else CHAR with the length of arg.
    REPLACE(arg1, arg2, arg3) See below SSTRING if arg1 or arg3 has the type SSTRING, else CHAR with the maximum possible length of the result.
    RIGHT(arg,len) arg: see below 

    len: positive numeric literal greater than 0 and less than or equal to 1333
    SSTRING if arg has the type SSTRING, else CHAR with length len
    RPAD(arg, len, src) arg: see below 

    len: positive numeric literal greater than 0 and less than or equal to 1333 

    src: character literal
    SSTRING if arg has the type SSTRING, else CHAR with length len
    RTRIM(arg, char) arg: see below 

    char: Character literal with length 1
    SSTRING if arg has the type SSTRING, else CHAR with the length of arg.
    SUBSTRING(arg, pos, len) arg: see below 

    pos and len: positive numeric literal not equal to zero
    SSTRING, if arg has the type SSTRING, else CHAR or NUMC with a length of at least len

    以下可以指定为参数:

    • suitable类型的文字。文本可以以域名作为前缀。
    • 当前CDS视图的数据源数据源的适当字段。
    • 用于标识数据源数据源的适当字段的路径表达式。
    • 以下预定义的函数和表达式(如果它们返回匹配的类型):
    • 其他预定义的SQL函数
    • 算术表达式
    • Type modifications using CAST

    arg、arg1、arg2和arg3的有效参数类型为char、clnt、lang、numc、cuky、unit、dats、tims和sstring。

    在指定了显式长度len的函数中,当CDS视图被激活时,结果的实际长度被定义为至少和len一样长。

    在除lpad和rpad之外的所有函数中,所有参数的尾随空格在实际处理之前被删除,结果的尾随空格在返回操作之前被删除。在lpad和rpad中,参数src的尾随空格被保留。

    注释

    系统代码页utf-16的代理区域中的字符由cds字符串函数作为两个字符处理。在确定长度时必须遵守这一点,并且这些字符不能被错误地拆分。

    例子

    以下CDS视图将选择列表中字符串的预定义SQL函数应用于数据库表demo_表达式的列。程序演示光盘的SQL函数字符串使用select访问视图。

    @AbapCatalog.sqlViewName: 'DEMO_CDS_STRFUNC' 
    @AccessControl.authorizationCheck: #NOT_REQUIRED 
      define view demo_cds_sql_functions_string 
       as select from demo_expressions 
       { length(            char1               ) as r_length, 
         instr(             char1, 'CD'         ) as r_instr, 
         concat(            char1, char2        ) as r_concat, 
         concat_with_space( char1, char2, 10    ) as r_concat_with_space, 
         left(              char1, 3            ) as r_left, 
         right(             char2, 3            ) as r_right, 
         lpad(              char1, 10, 'x'      ) as r_lpad, 
         rpad(              char2, 10, 'y'      ) as r_rpad, 
         ltrim(             char1, 'A'          ) as r_ltrim, 
         rtrim(             char1, 'E'          ) as r_rtrim, 
         replace(           char2, 'GHI', 'XXX' ) as r_replace, 
         substring(         char2, 2, 3         ) as r_substring }
    

    SQL函数的字符串

    下表显示了abap cds和open sql支持的字符串的SQL函数。最后两列指示函数的使用位置。

    SQL 函数 结果 ABAP CDS Open SQL
    CONCAT(arg1, arg2) Chaining of character strings in arg1 and arg2. Trailing blanks in arg1arg2, and in the result are ignored. The maximum length of the result is 1333. x x
    CONCAT_WITH_SPACE(arg1, arg2, spaces ) Concatenation of strings in arg1 and arg2 as with CONCAT. The number of blanks specified in spaces is inserted between arg1 and arg2. The maximum length of the result is 1333. x -
    INSTR(arg, sub) Position of the first occurrence of the string from sub in arg (case-sensitive). arg respects leading blanks and ignores trailing blanks. sub respects all blanks. sub must contain at least one character. If no occurrences are found, the result is 0. x -
    LEFT(arg, len) String of the length len with the len left characters of arg (ignoring the trailing blanks). The value of len cannot be greater than the length of arg. x -
    LENGTH(arg) Number of characters in arg ignoring trailing blanks. x x
    LPAD(arg, len, src) String of the length len with the right-justified content of arg without trailing blanks and in which leading blanks produced by the expanded string are replaced by the characters from the argument src (respecting all blanks). Trailing blanks from arg are preserved. If more characters are required than exist in src, the content of src is used repeatedly. If len is less than the length of arg, it is truncated on the right. If src is empty and len is greater than the length of argarg remains unchanged. x x
    LTRIM(arg, char) String with the content of arg in which all trailing blanks are removed and all leading characters that match the character in char. A blank in char is significant. x x
    REPLACE(arg1, arg2, arg3) Character string arg1, in which all instances of arg2 are replaced by the content from arg3. The replacement of letters is case-sensitive. Trailing blanks are ignored in all arguments. The maximum length of the result is 1333. x x
    RIGHT( arg, len ) String of the length len with the len right characters of arg (ignoring the trailing blanks). The value of len cannot be greater than the length of arg. x x
    RPAD(arg, len, src) String of the length len with the left-justified content of arg without trailing blanks and in which trailing blanks produced by the expanded string are replaced by the characters from the argument src (respecting all blanks). Trailing blanks from arg are preserved. If more characters are required than exist in src, the content of src is used repeatedly. If len is less than the length of arg, it is truncated on the right. If src is empty and len is greater than the length of argarg remains unchanged. x -
    RTRIM(arg, char) String with the content of arg in which all trailing blanks are removed and all trailing characters that match the character in char. A blank in char is significant. x x
    SUBSTRING(arg, pos, len) Substring of arg from the position pos in the length lenpos and len must be specified so that the substring is within in arg.

    关于潜在操作数和数据类型的描述可以在ABAPCDS和OpenSQL的相应文档中找到。

    参考文章

       ABAP CDS - String Functions

       SQL Functions for Strings

    本文原始地址:https://www.cnblogs.com/yjyongil/p/10495142.html

  • 相关阅读:
    试着把.net的GC讲清楚(2)
    试着把.net的GC讲清楚(1)
    【特性】select语句中使用字符串链接获取字段值失败
    twemproxy分片处理原理--剖析twemproxy代码正编
    robot framework的使用说明
    网络故障模拟,cpu高压以及docker中的实现
    我眼中的robot framework
    twemproxyMemcache协议解析探索——剖析twemproxy代码正编补充
    twemproxy代理主干流程——剖析twemproxy代码正编
    Leetcode 617 Merge Two Binary Trees 二叉树
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10495142.html
Copyright © 2011-2022 走看看