SAP 实用篇SAP

浅谈 ABAP 程序运行时出现『内存耗尽』错误的问题试读版

2023-01-08  本文已影响0人  _扫地僧_

我们用一个简单的 ABAP 程序来引出本文的讲解。

ABAP 系统的 TADIR 这张数据库表,作用很像 Windows 操作系统的注册表。我们在 Windows 系统里每安装一个软件,会在注册表里写入一些对应的记录。

同理,每次在 ABAP 系统创建新的『全局』资源,比如 ABAP 类,ABAP Function Module,ABAP 字典对象等等,就会在 TADIR 表里写入记录。在我的一个 ABAP 系统里,这张表有 200 多万条数据。

更多详情参考我的文章:SAPGUI 和 Windows 操作系统里的注册表

看下面这个简单的 ABAP 程序:我们把数据库表 TADIR 的全部记录读取出来,存放到内表 lt_tadir 里,然后在一个无限循环里,将这个内表的全部内容,拷贝到另一张内表 lt_result 里。

水满则溢,月盈则亏。所以内表 lt_result 不可能无限容纳来自其他内表的内容,什么时候会被 "撑爆"呢?

实际运行一下便知。

本文余下部分,介绍这个包含无限循环的 ABAP 应用,执行后会出现的情况和背后的知识点。

上一篇下一篇

猜你喜欢

热点阅读