ABAP基础-字符串处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP基础-字符串处理相关的知识,希望对你有一定的参考价值。

参考技术A 该语句连接字串s1...sn并将结果赋给s_dest,其中s_dest也可以是s1...sn中的某个变量。选项SEPARATED BY 用于指定一个字串作为分隔符,在构成新字串时插入在s1...sn之间。如果连接后的长度超过了目标数据定义长度,则把截断赋给c。如结果出现截断情况,SY-SUBRC返回4,否则该值返回0.要避免截断,可以将将c定义为String,该类型长度自适应。

该语句在源字串中搜索分隔符sep,并根据该分割符将元字串拆成各个小串放到目标字段s1 ... sn中,这些子串不包括分隔符。与连接语句类型,如结果出现截断情况,SY-SUBRC返回4,否则该值返回0。如果源子串能够拆分的子串多过指定数目,则源子串最后剩余部分包括其后的分割符都将写入最后一个子串,要避免这种情况,需要使用内表进行操作。
SPLIT s_source AT sep INTO TABLE itab.

语句LOOP AT用于循环输出内表的每一行数据。

改语句在字段c中查找字符串str。如果找到,则将SY-SUBRC返回0,SY-FDPOS返回字段c中该字符串的位置(从做算起的字节偏移量),否则将SY-SUBRC返回4。所谓模式是指要查找的字串不一定与str完全一致,可以设定忽略或保留str末尾的空格,或利用通配符“*”扩大其查找灵活性,由下列几种模式:

该语句对字段s_dest进行搜索,如果在其中出现了字符串str1,则用str2替换第一次出现的部分。如果未指定长度,则搜索整个s_dest。如果指定长度len,则只搜索前len个字节。如果字段SY-SUBRC返回0,则说明已经替换;非0则意味着未进行替换。

字符型逻辑表达式用于判断两个字符串之间的包含关系

CO,CN,CA,NA比较时要区分大小写,并且尾部空格也在比较的范围之内;使用CS,NS,CP,NP比较时忽略尾部空格并且比较不区分大小写。比较结束后,如果结果为真,系统字段SY-FDPOS将给出s2在s1中偏移量信息。

CP和NP被称为模式比较逻辑表达式,意义在于可以使用通配符。
“*”用于替代任何字符串,“+”用于替代任何单个字符。
如需对大小写或尾部空格进行区分比较,需要将换码字符“#”放到相应的字符前。下面列出可以使用“#”指定的功能:

通常,必须将偏移量和长度指定为无符号数。然而,一下情况中可以使用变量动态指定:

对字符类型,数值文本字段,十六进制字段,日期和时间字段指定偏移量是有意义的;类型F,I,P数值字段则不要使用指定偏移量。

SAP abap 怎么拆分字符串?

参考技术A

在sap里面open sql最为普遍。在hana之前,sap只是ERP类型软件,不提供数据库,数据库需要另行安装。为了适应各种数据库,SAP提供了Open sql这种技术作为abap开发使用,在后端SAP负责将open sql转换为对应数据的SQL语句。

而native sql就是abap开发程序中建立与其他数据库的连接,并直接使用该数据库对应的sql语句进行操作。在实际开发中较少使用到。

    读取单一行数据

    select single * from [table] into [wa] where [field] = ...

    在读取单一行数据时,尽量使用KEY值去搜索。当sy-subrc = 0时,读取成功,当它为4时,数据不存在。

    读取多行数据

    select * from [table] into table [itab] where [field] = ...

    关注sy-dbcnt字段,但读取成功时,该字段存储数据条目信息

    只读取部分数据

    将数据读取出来后,可能仅仅使用其中的几个字段,这时就尽量不要读取整行的数据。读取到的数据是占用内存的,尽量控制占用量。

    读取单行的部分字段:

    select single [fields] from [table] into(variants) where [fields] = ....

    select single [fields] from [table] into cprresponding fields of [wa] where [fields] = ....

有些report的前后台执行逻辑不一致、或该JOB是某个report中触发的,入参不明确、或者入参过于复杂时,需要开发直接DEBUG该JOB。

勾选需要DEBUG的JOB,输入JDBG,即可进行DEBUG。

如果这个report可以前台执行时,就比较容易了。找到出错JOB的入参,前台直接DEBUG。

Tcode: SM37 勾选需要处理的JOB名字,点击"STEP"

(选中JOB,查看JOB的变式)

选择“Go to-Variant”

(显示变式内容)

以上是关于ABAP基础-字符串处理的主要内容,如果未能解决你的问题,请参考以下文章

abap处理字符串

ABAP 基础

奥运代表团加油ABAP字符处理杂例

SAP abap 怎么拆分字符串?

SAP abap 怎么拆分字符串

ABAP必备基础语法