ABAP DESCRIBE语句

DESCRIBE
DESCRIBE FIELD
DESCRIBE FIELD dobj
[TYPE typ [COMPONENTScom]]
[LENGTHilen IN {BYTE|CHARACTER} MODE]
[DECIMALSdec]
[OUTPUT-LENGTH olen]
[HELP-ID hlp]
[EDIT MASK mask].
TYPE typ
以下是不同类型的dobj返回的类型ID列表,ID大小写敏感:
|
Numeric Data Type |
ID |
|
b |
b |
|
s |
s |
|
i |
I |
|
p |
P |
|
decfloat16 |
a |
|
decfloat34 |
e |
|
f |
F |
|
Character-Like Data Type |
ID |
|
c |
C |
|
string |
g |
|
n |
N |
|
d |
D |
|
t |
T |
|
Byte-Like Data Type |
ID |
|
x |
X |
|
xstring |
y |
|
Reference Type |
ID |
|
Data reference |
l |
|
Object reference |
r |
|
Complex Type |
ID |
|
Flat structure |
u |
|
Deep structure |
v |
|
Internal table |
h |
COMPONENTS选项是对结构的字段数进行统计,如果有内嵌的结构,则只算直接(最高级别的)内嵌的结构,且只算做1个。
,
comp2 TYPE i.
DESCRIBE FIELD: struc1 TYPE typ1 COMPONENTS comp1,
struc1-struc2 TYPE typ2 COMPONENTS comp2.
WRITE:/ typ1,comp1,/ typ2,comp2.
DESCRIBE FIELD: struc1 TYPE typ1,
struc1-struc2 TYPE typ2.
WRITE:/ typ1,/ typ2.
v 3
u 2
v
u
LENGTH ilen
当使用IN CHARACTER MODE选项时,dobj必须是flat and character-like,针对deep data types的dobj,你只能使用IN BYTE MODE,并且此情况下返回的长度为引用所占长度(在SAP系统中每个reference的长度固定为8 bytes)
对于固定长度类型的dobj,是在创建这个变量时就已决定。如果字符串类型,则不会计算尾部空格,此时可以使用预置函数strlen来测定
,
blen TYPE i,
clen TYPE i,
bytes TYPE i.
DESCRIBE FIELD text LENGTH blen IN BYTE MODE.
DESCRIBE FIELD text LENGTH clen IN CHARACTER MODE.
bytes = blen / clen.
WRITE:/ blen,clen,bytes.
2 1 2
DECIMALS dec
dobj的小数位
,
i TYPE i.
DESCRIBE FIELD p DECIMALS i.
WRITE:/ i.
4
OUTPUT-LENGTH olen
测试dobj屏幕输出宽度,对于那些固定长度数据类型,输出宽度都是已经预置好的,对于strings,则为0
Numeric Data Types
|
Data Type |
Output length |
|
b |
3 |
|
s |
5 |
|
i |
11 |
|
p |
2 x length of dobj (+ 1, if there is a decimal separator) |
|
decfloat16 |
24 |
|
decfloat34 |
46 |
|
f |
24 |
注:上面表中的s类型显示宽度只有5位,不中以显示符号;i显示宽度为11,可以显示符号
Character-like data types
|
Data Type |
Output Length |
|
c |
Length of dobj, maximum 255 |
|
string text field literals |
根据屏幕列表设置的最大宽度来决定。如果字符不满List设置的宽度时,left-justified输出时会在右边补空格,right-justified输出时会在左边补空格,centered outputs输出时两端补空格 |
|
n |
Length of dobj, maximum 255 |
|
d |
8 |
|
t |
6 |
Byte-Like Data Types
|
Data Type |
Output Length |
|
x |
2 x length of dobj, maximum 255 |
|
xstring |
2 x number of bytes contained |
DATA: date1 TYPE d,
date2 TYPE sy-datum,
olen1 TYPE i,
olen2 TYPE i.
DESCRIBE FIELD date1 OUTPUT-LENGTH olen1.
DESCRIBE FIELD date2 OUTPUT-LENGTH olen2.
WRITE: / date1,date2,/ olen1,olen2.
00000000 00.00.0000
8 10
HELP-ID hlp
DATA: carrid TYPE spfli-carrid,
hlp TYPE string,
struc TYPE dfies-tabname,
comp TYPE dfies-fieldname.
DESCRIBE FIELD carrid HELP-ID hlp.
SPLIT hlp AT '-' INTO struc comp.
WRITE:/ hlp, / struc,/ comp.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = struc
fieldname = comp.

EDIT MASK mask
If a conversion routine is assigned to the data object dobj by referring to a domain in ABAP Dictionary, two equals signs "==" precede the name of the conversion routine and the result is assigned to the data object mask.
.
WRITE / seconds USING EDIT MASK msk.
==SDURA
5:33

DESCRIBE TABLE
DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].
不同的选项使你能够判断表类型、行数、初始化大小。另外,系统字段sy-tfill 和 sy-tleng 保存着表行数量和以字节计的表行长度。注:为了更详细的关于内表的信息,应用RTTS的方法代替语句describe table。没有指定一个附加项,语句describe table 只设置系统字段sy-tfill 和sy-tleng的值。
a) KIND knd
标识为T 时代表标准表,为S时代表排序表,为H时代表哈希表。这些值在类型组SYDES中已被定义成常量sydes_kind-standed ,sydes_kind-sorted,sydes_kind-hashed。
b) LINES lin 内表表行数量
注:在版本6.10中,内表表行的当前数量也可以用内建函数lines来判断
c) OCCURS n
在内表用选项initial size 或者老式的选项ocurs创建期间决定内表所需要的初始化内存大小
.
DESCRIBE TABLE itab KIND tabkind.
IF tabkind = sydes_kind-standard OR
tabkind = sydes_kind-hashed.
SORT itab DESCENDING.
ELSEIF tabkind = sydes_kind-sorted.
MESSAGE '...' TYPE 'E'.
ELSE.
MESSAGE '...' TYPE 'E'.
ENDIF.
ENDFORM.
DESCRIBE DISTANCE
DESCRIBE DISTANCE BETWEEN dobj1 AND dobj2 INTO dst
IN {BYTE|CHARACTER} MODE.
dobj1 and dobj2两个变量地址起始位置的距离
,
comp3 TYPE c LENGTH 4 VALUE 'Hey',
comp4 TYPE c LENGTH 4 VALUE 'you!',
comp5 TYPE x,
END OF struc.
DATA: off TYPE i,
len TYPE i,
len2 TYPE i.
FIELD-SYMBOLS: <hex> TYPE x,
<result> TYPE c.
DESCRIBE DISTANCE BETWEEN:
struc AND struc-comp3 INTO off IN BYTE MODE,
struc-comp3 AND struc-comp5 INTO len IN BYTE MODE,
struc AND struc-comp1 INTO len2 IN BYTE MODE.
ASSIGN: struc TO <hex> CASTING,
<hex>+off(len) TO <result> CASTING.
WRITE: / 'Offset off is', off,
/ 'Length len is', len,
/ '<result> points to', <result>,
/ len2.
Offset off is 6
Length len is 16
<result> points toHey you!
0
ABAP DESCRIBE语句的更多相关文章
- Hive学习之函数DDL和Show、Describe语句
创建/删除函数 创建暂时函数 以下的语句创建由class_name实现的暂时函数,该函数被创建后仅仅能够在当前会话中使用.会话结束后函数失效. 实现函数的类能够是Hive类路径中的随意类.能够使用Ad ...
- ABAP table control例子
[转自]http://blog.csdn.net/lhx20/article/details/3039909Table control用于在screen上以表格的形式显示数据,在table contr ...
- ABAP 关键字(1)
1.定义DATA ,TYPES TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值. DA ...
- ABAP之声母韵母
我们一开始上学的时候,老师最先教的是什么? 拼音,声母,韵母,声调等等. 那么ABAP里什么是这些东西呢? 基础的数据类型,已经数据字典里的东西:域,数据元素,结构,视图,表,搜索帮助,锁... 数据 ...
- MySQL-Select语句高级应用
1.1 SELECT高级应用 1.1.1 前期准备工作 本次测试使用的是world数据库,由mysql官方提供下载地址: https://dev.mysql.com/doc/index-other.h ...
- ABAP 7.53 中的ABAP SQL(原Open SQL)新特性
S/4 HANA 1809 已经在上月发布,随之而来的是ABAP 7.53. 本文是更新文档中ABAP SQL的部分的翻译. 本次更新的内容较多,主要内容包括:Open SQL更名为ABAP SQL: ...
- load data语句实验报告
1.创建和选择数据库 如果管理员在设置权限时为您创建数据库,则可以开始使用它.否则,您需要自己创建它: 创建数据库不会选择它来使用; 你必须明确地这样做.要创建menagerie当前数据库,请使用以下 ...
- 【转】MySQL-Select语句高级应用
[转]MySQL-Select语句高级应用 1.1 SELECT高级应用 1.1.1 前期准备工作 本次测试使用的是world数据库,由mysql官方提供下载地址: https://dev.mysql ...
- 高性能mysql-----MySQL_explain关键字分析查询语句(一)
转载地址:https://www.cnblogs.com/xpp142857/p/7373005.html MySQL_explain关键字分析查询语句 通过对查询语句的分析,可以了解查询语句的执 ...
随机推荐
- Gson将参数放入实体类中进行包装之后再传递
package com.sinoservices.dms.orderinfo.entity; public class OrderDetailKeyCondition { //工单主键 private ...
- STM32内存跟FLASH问题
RO: 常量 ZI: 未初始化的全局变量 RW: 初始化的全局变量 Code: 程序本身 Code, RO-data,RW-data ..............flash RW-data, ZIda ...
- blade模版之页面的嵌套
blade模版 相关关键词:@section @yield @extends @extends @show @parent(追加内容而不是覆盖) 父页面view\layout\f.blade.php ...
- java正则表达式四种常用的处理方式是怎么样呢《匹配、分割、代替、获取》
java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下package test; import java.util.regex.Matcher; import jav ...
- PHP将多张小图拼接成一张大图
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...
- sql中的小细节
1.SUM与COUNT的区别 SUM是对符合条件的记录的数值列求和 COUNT 是对查询中符合条件的结果(或记录)的个数 2 select name as 姓名,tel from...where.. ...
- Codeforces 735C:Tennis Championship(数学+贪心)
http://codeforces.com/problemset/problem/735/C 题意:有n个人打锦标赛,淘汰赛制度,即一个人和另一个人打,输的一方出局.问这n个人里面冠军最多能赢多少场, ...
- “wsimport -keep ”生成客户端报错“Use of SOAP Encoding is not supported.”
本来想用 “wsimport -keep ” 生成客户端,结果报错“Use of SOAP Encoding is not supported.” 应该是缺jar包, 闲麻烦就发现了百度经验上的 这个 ...
- ACM题目————放苹果
Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 ...
- Mybatis用法小结
select 1.基本用法 <select id="selectTableOne" resultType="com.test.entity.tableOne&quo ...