上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

SAP ABAP中的数据类型 Data Types

guduadmin21天前

简单来说分两种:

  1. 数据字典里定义的
  2. 在ABAP程序里定义的

文章目录

    • 1. ABAP数据字典里的
      • 1.1 数字型的
      • 1.2 字符型
      • 1.3 字节型
      • 1.4 特殊类型
      • 2. 预定义的ABAP数据类型
        • 2.1 预定义数字型
        • 2.2 预定义字符型
        • 2.3 预定义字节型

          1. ABAP数据字典里的

          1.1 数字型的

          用在数学计算里的,表达式里的,表序号里的。

          Interger整数型:

          INT1 : 1字节整数,0-255 (2的8次方-1)

          INT2 : 2字节整数,-32768-32767(2的15次方-1,有一位是符号位)

          INT4 : 4字节整数,-2147483648-2147483647(2的31次方-1)

          SAP内部使用的INT1和INT2分别对应b和s。但是这两种预定义的不能被外部开发用上。

          DEC小数型:Packed number

          一般在BW里面能看到Curr的类型就是in BCD format,是Binary Coded Decimal。二进制编码小数

          SAP ABAP中的数据类型 Data Types,在这里插入图片描述,第1张

          二进制编码高效展示小数,p类型就是会定义总长度和小数位数。Packed类型是CURR,QUAN和DF34_DEC,DF16_DEC的内部展示类型。我们定义一般写成:

          Data: amount type p length 8 decimals 2.

          Floating 浮点型:

          小数浮点型,相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。

          这个在计算机组成原理里有。定点数小数点固定。不需要额外存储空间来存储小数点。只有符号位在最前面需要占一位bit。

          但是定点数存储大范围的数值就不好搞了,我得把所有数都存下来,这就不如用科学计数法来的省空间了。所以浮点型借鉴十进制的科学计数法。计算机中的浮点数计算方式:

          K=(-1)^ SM2^N ,其中,S代表符号位,M代表尾数,N代表阶码

          主要就是为了让有限的计算机存储空间来存放大范围的数值。

          小数浮点数:

          DF16_DEC

          DF16_RAW

          DF34_DEC

          DF34_RAW

          ABAP 二进制浮点类型FLTP长度定为16位,基于EEE754的标准,这个标准就是说在不同平台相同的浮点数的表示结果得一样。

          小数浮点型和FLTP的区别在于,FLTP是个二进制类型,对应ABAP类型f.由于有些小数不能完全转换为二进制,所以这个不是100%精确的。所以一般不在需要高精度计算的场景比如财务或者税务报表里使用,几乎所有的FLTP都能用DEC 类型。所以说用P就够了。

          1.2 字符型

          字符串或者字符数据

          character

          1~30000个字符数据,表格里最大放1333位,这也是BW里infoobject的最大text长度。而且不能用在表键。

          string

          SSTRING short string,1-1333长度

          STRING-256-无限长(实际受可寻址的范围限制,最大2GB,内表也是最大2GB)

          1.3 字节型

          用来存储开发任务里的字节链。

          RAW–长度为1-32000位的字节字符串。对于表字段,最大值为255。

          LRAW–长度为256-32000位的长字节字符串

          RAWSRING–长度为256无限长的BLOB字符串

          RAW和LRAW类型具有对应的ABAP类型x,而RAWSRING类型对应于xstring类型。LRAW将来不用了。

          1.4 特殊类型

          日期/时间类型

          DATS YYYYMMDD --对应d类型。从数据库读或者写的时候不是这个格式来的,在Dynpros里显示为这个格式。

          TIMES HHMMSS,也是在Dynpros里显示的。对应t类型。

          ACCP过账期间的字符表示:YYYYMM

          特殊字符类型

          NUMC 字符,最长255位,但是只用来存储数字。对应n

          CLNT char3

          LANG char1

          货币/数量字段

          CURR–用于存储货币的类型,技术上表示为长度为1-31的packed number。

          CUKY–货币字段的货币键,按字符类型显示。最大长度为5位。

          QUAN–用于以特定单位存储数量的类型,技术上表示为长度为1-31 packed number。

          UNIT–数量字段的单位键,由字符类型表示。最大长度为3位置。

          货币和数量字段是用于按功能属性存储数据的特殊字段。所有货币和数量字段必须与对应的关键字段(CUKY和UNIT)相关联,否则表格将无法通过验证。所有CUKY字段只能包含TCURC表中的值,而所有UNIT字段只能包含T006表中的值。

          2. 预定义的ABAP数据类型

          2.1 预定义数字型

          b -INT1

          s - INT2

          标准SAP程序使用

          i- INT4 在ABAP程序使用

          p- 最大长度16字节

          decfloat16–用于存储字典类型DF16_DEC和DF16_RAW的十进制浮点数。最大长度为8字节。

          decfloat34–用于存储字典类型DF34_DEC和DF34_RAW的十进制浮点数。最大长度为16字节。

          f–二进制浮点数类型,类似于FLTP DDIC类型。高精度计算不能使用。

          2.2 预定义字符型

          c–一般字符类型,长度为1到262143个字符。

          string–用于存储数据字典中的字符串和短字符串(string和SSSTRING)的类型,以及广泛的字符串操作。

          n–数据字典中NUMC类型的模拟

          d–用于存储数据字典中的DATS值的日期类型,即yyyymmdd。长度为8个字符。应用日期验证规则:“yyyy”(年)应在0001到9999之间,“mm”(月)应在01到12之间,“dd”(日)应在1到31之间。

          t–用于存储数据字典中的TIMS值的时间类型,即hhmmss。长度为6个字符。应用时间验证规则:“hh”(小时)应在00到23之间,“mm”(分钟)应在0到59之间,“ss”(秒)应在00到59之间。

          使用类似字符的预定义类型时,应始终考虑Unicode系统。UTF16代码页有两个字节长的字符。动态对象的最大大小也适用于DDIC字符类型。CL_ABAP_ELEMDESCR类可用于检查类型n和c的最大长度。

          2.3 预定义字节型

          预定义的ABAP类型用于存储和操作ABAP程序中的字节链,以及与数据字典类型RAW、LRAW和RAWSRING的交互。

          x–长度为1至524287字节的字节链。模拟RAW DDIC类型。

          xstring–可变长度的字节链。RAWSRING DDIC类型的模拟。

          与以前的可变长度类型一样,xstring的最大长度不是无限的。它取决于当前系统上的内存配置,可以通过CL_ABAP_ELEMDESCR类常量TYPE_X_MAX_LENGTH进行检查。

网友评论

搜索
最新文章
热门文章
热门标签