在ABAP中,RANGE表包含SIGN,OPTION,LOW,HIGH那它能不能和普通表一样进行操作,比如LOOP,APPEND,READ等等
为什么在检索DB时IN后面可以加RANGE表,在这个时候IN语句会自动去匹配LOW,HIGH的值吗?为什么普通的标准表不可以?还有,RANGE表使用时除了数据量的要求外还...
为什么在检索DB时IN后面可以加RANGE表,在这个时候IN语句会自动去匹配LOW,HIGH的值吗?
为什么普通的标准表不可以?
还有,RANGE表使用时除了数据量的要求外还要注意什么? INDEX ,MODIFY之类的可以用吗?效率怎样?
不要从网上摘抄的,我自己也会做测试,但我需要专业的解释,知道的大侠讲一下啊,谢谢 展开
为什么普通的标准表不可以?
还有,RANGE表使用时除了数据量的要求外还要注意什么? INDEX ,MODIFY之类的可以用吗?效率怎样?
不要从网上摘抄的,我自己也会做测试,但我需要专业的解释,知道的大侠讲一下啊,谢谢 展开
2个回答
展开全部
为什么在检索DB时IN后面可以加RANGE表,在这个时候IN语句会自动去匹配LOW,HIGH的值吗?
--->是的,这是ABAP Open SQL 特有的功能。
为什么普通的标准表不可以?
--->如果内表有根range table 一样的结构的话,那么也是可以的。range table也是一种内表,只不过它的表结构被特定化了。
还有,RANGE表使用时除了数据量的要求外还要注意什么? INDEX ,MODIFY之类的可以用吗?效率怎样?
--->注意sing和option的值必须是大写,例如:“I” 不能为“i”。 INDEX 和 MODIFY也是可以用的,因为Range table也是一种内表。
--->是的,这是ABAP Open SQL 特有的功能。
为什么普通的标准表不可以?
--->如果内表有根range table 一样的结构的话,那么也是可以的。range table也是一种内表,只不过它的表结构被特定化了。
还有,RANGE表使用时除了数据量的要求外还要注意什么? INDEX ,MODIFY之类的可以用吗?效率怎样?
--->注意sing和option的值必须是大写,例如:“I” 不能为“i”。 INDEX 和 MODIFY也是可以用的,因为Range table也是一种内表。
追问
那也就是说LOOP.READ.DELETE这些命令也可以用到RANGE表里去是吗?
IN语句自动匹配LOW,HIGH值,只是ABAP OPEN SQL的特有功能吗?还是在其余的数据库里面也可以实现?谢谢
追答
那也就是说LOOP.READ.DELETE这些命令也可以用到RANGE表里去是吗?
-->是的
IN语句自动匹配LOW,HIGH值,只是ABAP OPEN SQL的特有功能吗?还是在其余的数据库里面也可以实现?谢谢
-->Open SQL是ABAP中的数据检索语言,它将底层的数据库封装起来,也就是说不管SAP连接的是什么数据库系统(SQL Server,DB2。。。。)ABAP开发人员都不需要去写对应不同数据库的SQL语句,OPEN SQL一套就够了,所有的数据库都可以检索操作数据。至于IN能不能在其他的数据库中实现,我不太了解。
展开全部
Range table 和select-option 的变量是差不多的
sign = 'I' 或 sign = 'E' 是指INCLUED 和 EXCLUDE
OPTION = 'EQ' 或其他操作符。。
LOW 是指最少值(操作符是范围的话)
HIGH ( 如果操作符是‘EQ’,该field没用)
如果
data: lv_ebeln type ekko-ebeln.
ranges: r_ebeln for lv_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '123456'.
append r_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '234567'.
append r_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '345678'.
append r_ebeln.
select * from ekko
into table XXX where ebeln in r_ebeln.
就会把EKKO表里的EBELN = '123456' OR EBELN = '234567' OR EBELN = '345678'的纪录选出来
sign = 'I' 或 sign = 'E' 是指INCLUED 和 EXCLUDE
OPTION = 'EQ' 或其他操作符。。
LOW 是指最少值(操作符是范围的话)
HIGH ( 如果操作符是‘EQ’,该field没用)
如果
data: lv_ebeln type ekko-ebeln.
ranges: r_ebeln for lv_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '123456'.
append r_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '234567'.
append r_ebeln.
r_ebeln-sign = 'I'.
r_ebeln-option = 'EQ'.
r_ebeln-low = '345678'.
append r_ebeln.
select * from ekko
into table XXX where ebeln in r_ebeln.
就会把EKKO表里的EBELN = '123456' OR EBELN = '234567' OR EBELN = '345678'的纪录选出来
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询