关于SAP ABAP字符变量和字符串变量字符个数的一个知识点,和一个血案

简介: 关于SAP ABAP字符变量和字符串变量字符个数的一个知识点,和一个血案

今天是2020年5月2日,五一国际劳动节小长假的第二天。让我们继续劳动起来。

使用ABAP strlen函数计算下列这4个字符和字符串变量中包含的字符个数。

image.png

大家先别急着滑动屏幕,先试着自己计算一下,看和标准答案是否有出入。也许大家觉得这些小的知识点没什么用,但Jerry马上会分享一个我实际处理过的客户incident,正是由于类似这种看似不起眼的小知识点没有留意,最后影响了项目进展。

image.png

image.png

image.png

正确答案,依次是:

2

1

19

17

逐一解释。


strlen( lv_s ) = 2

整型变量的值,整数1,赋给字符串变量lv_s, 这里发生一个隐式类型转换。


SAP帮助文档里声明,整型变量赋给字符串变量时,如果整数为负数,则字符串变量末尾为"-";如果整数为正数,则字符串变量末尾为空白字符。换言之,当整型变量到字符串变量的隐式类型转换发生时,字符串变量末尾会多出一位,代表赋值源头的整型数的符号位。


image.png

lv_s多出来的这个空白字符在调试器里看得很清楚,2000正是空白字符的16进制编码。同时调试器里也能看到lv_s的字符串个数为2.

image.png

strlen( lv_s2 ) = 1

和前一例相比,lv_s2的复制操作没有出现隐式类型转换,而是直接被赋以了一个字符常量,故字符个数为1.

strlen( lv_ss) = 19

lv_ss的类型为SSTRING,实际就是一个CHAR20:

image.png


相关文章
|
1月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
52 0
|
1月前
|
SQL Android开发
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
9 0
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
|
1月前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
20 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
1月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
1月前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
16 1
|
1月前
|
人工智能
Suno AI 生成 SAP ABAP 顾问之歌
Suno AI 生成 SAP ABAP 顾问之歌
22 1
|
1月前
|
存储 安全 数据库
SAP ABAP 中数据类型 xstring 的使用介绍
SAP ABAP 中数据类型 xstring 的使用介绍
29 0
|
1月前
|
存储
ABAP 系统中一个字符到底占据几个字节存储空间
ABAP 系统中一个字符到底占据几个字节存储空间
20 1
|
1月前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
1月前
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
12 1
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍