SAP ABAP 数据类型
SAP ABAP 基本数据类型
ABAP 类型 | 说明 |
---|---|
C | 如果未在 DATA 语句中指定参数和,则创建长度为 1 的字符 |
N | 0到9之间字符组成的数字字符串,如果未在 DATA 语句中指定参数,则创建长度为 1 |
D | 日期格式必须为 YYYYMMDD 取值范围:YYYY (year): 0001 to 9999, MM(month): 01 to 12, DD (day): 01 to 31 |
T | 格式为 24-hour的 HHMMSS HH:00 to 23 /MM:00 to 59/ SS:00 to 59 |
I | -2.147.483.648 to +2.147.483.647(.点号为千分位分隔符,不是小数点,而,逗号则表示是小数点)如果运算出现非整型的结果(如小数)则进行四舍五入,而不是截断 |
F | 小数位最大可以到17位,即可精确到小数点后17位取值范围:-1,7976931348623157EE+308 to -2,2250738585072014EE-308 for the negative area, the value zero, and +2,2250738585072014EE-308 to +1,7976931348623157EE+308 for the positive area.如果要求高精度,则不应该使用类型 F 数据。而应代之以类型 P 数据F赋值时,会转换为标准形式:<±尾数部分>E±<指数部分>,且尾数部分的小数位最多为17位。如果值是小数,则要将值使用引号引起来 |
P | 有效长度为1到16个字节。两个数字位压缩后才占一个字节,由于0-9的数字只需要4Bit位,所以一个字节实质上允许存储二位数字,这就是P数 据类型为压缩数据类型的由来,因为定义的的数据长度比存储于内存中要长。并借用最后半个字节,即字面上的一位来存储小数点、正号、负号、或者是这三种中间 的组合————存储的可能是通过将小数点与正负号经过某种位运算后的结果,因为半个字节不可能存储小数或正负号的所对应的ASCII码(都比15大)P类型最多允许14位小数位,即可以精确到小数点后14,再除开小数点与正负号占半个字节,即字面上1位4Bit,此时最大整数位最长可达16*2 = 32 – 1 = 31 -14 = 17位Depending on the field length len(len表示定义时P的整个长度) and the number of decimal places dec(dec表示小数位), the following applies for the value area: (-10^(2len -1) +1) / (10^(+dec)) to (+10^(2len -1) -1) /(10^(+dec)) in steps of 10^(-dec). Values in between this range are rounded off.在计算过程中如果小数部分过长,则进行四舍五入。若小数部分超过长度,则自动按四舍五入将多余的小数除掉;如果整数部分超过长度,则系统运行出错如果值是小数,则要将值使用引号引起来 |
X | 十六进制字符 0-9, A-F具体的范围为:00~FF类型X是十六进制类型,可表示内存字节实际内容,使用两个十六制字符表示一个字节中所存储的内容。但直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符如果未在 DATA 语句中指定参数,则创建长度为 1注:如果值是字母,则一定要大写,否则赋值不进DATA: x2(2)TYPE x.x2 = ‘3AA‘.WRITE : / x2."输出赋值时字面上的值:3AA0 |
STRING | 在系统内部,长度可变的内置类型(String、XString)是通过引用实际动态的数据对象的固定内存地址来进行操作,因而这两种内置类型和引用类型一样,属于纵深类型。 |
XSTRING | 由十六进制字符 0-9, A-F组成字符串。直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符串注:如果值是字母,则一定要大写,否则赋值不进DATA : xs TYPE xstring .xs = ‘303132‘."表示字符串 012WRITE 😕 xs."但输出的还是303132 |
B | 0 to 255属于ABAP内部类型,在ABAP程序中不能直接使用 |
S | -32.768 to +32.767属于ABAP内部类型,在ABAP程序中不能直接使用 |
SAP ABAP 通用类型
除了object,所有的通用类型都能直接用TYPE后面(如 TYPE data,但没有TYPE object,object不能直接跟在TYPE后面,只能跟在 TYPE REF TO后面)
TYPE REF TO 后面可接的通用类型只能是 data(数据引用)或者是 object(对象引用)通用类型,其他通用类型不行:
TYPE REF TO data :表示的是数据引用data references
TYPE REF TO object: 表示的是对象引用object references
ANY代表了除data、 object 任何数据类型
下表为ABAP预置的通用类型。ABAP数据类型继承图。
character-type(字符类型):text fields ©、numeric text fields (n)、date fields (d)、and time fields (t)、text string (string),相应的通用类型为clike
numeric-type(数值类型):Integer (i)、floating point numbers (f)、and packed numbers §,相应的通用类型为numeric.
byte-type(字节类型):Byte fields (x)、byte string (xstring),相应的通用类型为xsequence.
ABAP 类型 | 说明 |
---|---|
any table | 具有任何表类型的内部表 |
hashed table | 哈希表 |
index table | 索引表 |
sorted table | 排序表 |
standard table | 标准表 |
table | 标准表 |
data | 任何数据类型 |
any | 任何数据类型 |
simple | 基础数据类型,以及只包含character-like扁平组件的数据结构 |
object | 任何对象类型(继承层次结构的根类继承层次结构) |
以下用在Form或方法的形式参数中 | |
clike | 类字符(c、d、n、t、字符串和类字符平面结构) |
csequence | Text-like (c, string) |
xsequence | Byte-like (x, xstring) |
numeric | 数字(i(b,s),p,decfloat16,decfloat 34,f) |
数据字典预置类型
数据字典预置类型 | ABAP类型 - 运行长度 - 说明 |
---|---|
ACCP | 长度N(6)、会计计算周期 |
CHAR | C(n) 1-255 字符 |
CLNT | C(3) 3 集团,数据区域代码 |
CUKY | C(5) 5 货币代码 |
CURR(n,m) | P((n+1)/2)DECIMALm 42736 货币金额 |
DATS | D(8) 8 日期 |
DEC n,m | P((n+1)/2)DECIMALm n(1-31)m(1-17) 数值计算 |
FLTP | F(8) 18 浮点数 |
INT1 | X(1)(类型b) 3 单字节整形数 |
INT2 | X(2)(类型s) 5 双字节整形数 |
INT4 | X(4)(类型i) 10 四字节整形数 |
LANG | C(1) 内部1位外部2位 语言代码 |
LCHR | C(n) 256-最大值 长字符 |
LRAW | X(n) 256-最大值 长位字串 |
NUMC n | N(n) 1-255 数值文字 |
PREC | X(2) 16 精确度 |
QUAN n,m | P((n+1)/2)DECIMALm 42736 数量 |
RAW n | X(n) 1-255 位字串 |
TIMS | T(6) 6 时间 |
VARC n | C(n) 255-最大值 长字符(仅3.0前可用) |
STRING | STRING 1-最大值 字符串 |
RAWSTRING | XSTRING 1-最大值 位字符串 |
UNIT | C(n) 2~3 单位 |
转载自:https://www.cnblogs.com/bolang100/p/7525511.html