点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我在DDIC中有一个表,其中的列都包含空白和空值。 使用SAP Logon,我们无法区分两者。 因此,我编写了以下程序,如果我在where条件(请参阅程序)中使用null,否则可以获取条目,否则为0条目(如果为空白)。
我正在尝试使用" IS NOT INTIAL"检查包含null的字段的值。 但是它永远不会进入if块,这意味着test2不为null。
所以我有以下问题:
1。)当我们从内部表中的SAP数据库传输数据时,空值(在sap数据库中存在)发生了什么。 内部表字段是否还包含空值,或者它们会初始化?
2。)我正在使用" IS NOT INTIAL"来检查字段是否具有空值。 还有其他方法可以检查吗?
在用户界面中显示为:
表:ZTEST_NEERAJ
| ID | NAME | AGE | TEST | TEST2 |
| 1 | NEERAJ | 45 | 0 | |
| 2 | | 45 | 0 | |
实际情况如下:
表:ZTEST_NEERAJ
| ID | NAME | AGE | TEST | TEST2 |
| 1 | NEERAJ | 45 | 0 | NULL |
| 2 | | 45 | 0 | NULL |
功能ZSQL_QUERY2。
*" --------------------------------------- -------------------------------
*" *"本地接口:
*" EXPORTING
*"参考(DBCNT)类型SY-DBCNT
*" ----------------------------------- -----------------------------------
数据:TABLE1类似于TABLE OF 带有标题行的ZTEST_NEERAJ初始大小10。
从ZTEST_NEERAJ到表TABLE1中选择*,其中test2为NULL。
DBCNT = SY-DBCNT。
读取表TABLE1索引1。
数据:X TYPE I值0。
如果TABLE1-test2不初始。
X =1。
ENDIF。
ENDFUNCTION。
谢谢
Partish
如果该值为NULL,则也许可以改用一个不太可能发生的值,然后使用 COALESCE 函数:
(下面,我假设您的列具有类型字符,所以我使用术语BLANK,我可能使用术语INITIAL来区分类型) p>
因为ABAP将NULL值转换为BLANK,所以您不应该允许表列同时包含NULL和BLANK。
此外,ABAP只能写入BLANK值,因此只能选择BLANK。
p>
你好Sandra Rossi,
谢谢您的启发。
是的,它是char类型。
我知道我们不应该同时包含null和blank,但是我们已经有了现有的数据,并且正在执行数据的提取和加载。 在执行ETL时,我们必须将数据放入内部表中。
也请提供任何引用帮助您说明" ABAP将null转换为空格"的信息。
谢谢
Partish
简单/愚蠢的解决方案可能是使用另一个具有VALUE_NULL的布尔字段
一周热门 更多>