CDS视图中数据类型转换及说明

CDS中最基本的数据数据是字符与数值类型,

1.字符

  • 用单引号引起来的一系列字符
  • 如果仅包含数字,则为NUMC
  • 否则为CHAR

2.数字文字

  • 无引号的数字系列
  • 可以包含小数点,但不能在第一位数字之前
  • 如果包含小数点,则为FLTP
  • 否则,请键入INT1,INT2或INT4,具体取决于大小

3.文字的前缀

在某些操作数位置,文字可以具有域前缀。域前缀由DOMAIN类型的存储库对象的名称组成,以字符“#”或“:”引入,并用句点(..)分隔。

对于大多数文本文字,引号带有域前缀时可以省略。

如果文字带域前缀,则语法检查将发出警告,以防文字与域的固定值不匹配或不在域指定的值范围内

CDS视图中数据类型转换及说明 - 第1张  | 优通SAP

4.算术表达式

CDS视图中数据类型转换及说明 - 第2张  | 优通SAP
  • 在ABAP CDS中,算术表达式可以用作字段列表的元素。
  • ABAP CDS支持四个运算符,方括号和三个不同的算术(整数,十进制和浮点数)。中间结果的值范围和精度在很大程度上取决于所使用的算法。

注意:

不带小数的数字文字具有整数类型。带小数的数字文字的类型为FLTP!

CDS视图中数据类型转换及说明 - 第3张  | 优通SAP

5.使用CAST进行类型转换

CDS视图中数据类型转换及说明 - 第4张  | 优通SAP

使用CAST表达式进行类型转换

  • 与ABAP不同,ABAP CDS不知道隐式类型转换。相反,CDS检查非常严格的类型兼容性规则。
  • CDS的CAST表达式使您可以实现显式类型转换。
  • 在NW 740中,只能将目标类型指定为技术类型,即指定为预定义的字典类型,例如INT4,CHAR或DEC。
  • 从NW 7.50开始,来自Dictionary的任何数据元素都可以成为使用CAST进行类型转换的目标类型。
  • 类型转换的操作数不能仅是文字源或数据源(例如数据库表)的字段。各种其他表达式都是可能的,例如算术表达式,CASE区分,预定义函数等。

注意:

关于源类型和目标类型的组合存在限制。完全不支持某些组合。其他人只能有局限性。例如,当前不可能使用FLTP类型的操作数作为CAST表达式的源。可以在ABAP语言文档中找到详细的矩阵。

CDS视图中数据类型转换及说明 - 第5张  | 优通SAP