显示来自 SAP 透明的 500 多个字符字段 table
Display 500+ character field from SAP transparent table
众所周知,SAP 不建议在透明 table 中使用 255+ 字符字段。应该使用几个 255 字段,将文本换行在 LCHR、LRAW 或 STRING 中,或者使用 SO10 文本等。
然而,在维护遗留(和丑陋)开发的同时,经常会出现这样的问题:如何查看存储在数据库中的 char500
或 char1000
字段中的内容?
真实场景:
- 我们有一个开发,其中一些结构以透明方式从
char1000
字段写入和读取 table
- 我们知道字段结构,通过
CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
或SO_STRUCT_TO_CHAR
解析字段没问题,所有字段都放得很好
- 通过 SE11/SE16/SE16n 显示字段没有给出任何结果,因为字段被截断为 255,在调试器 AFAIR 中被截断为 132。
有什么标准工具、交易或FM可以用来显示这么长的字段吗?
如果您有 ERP 系统,您可以使用信息类型 1002 手动检查事务 PP01。基本上,它们将文本存储在 table HRP1002 和 HRT1002 中,并使用文本编辑器创建特殊视图。它看起来像这样:http://www.sapfunctional.com/HCM/Positions/Page1.13.jpg
在调试器中,您可以将视图切换为例如HTML 你应该会看到整个字符串,但据我所知,编辑仅限于一定数量的字符。
在DBA驾驶舱(ST04)中,有一个SQL命令行,您可以在其中直接输入"native" SQL命令并将结果显示为ALV视图。使用子字符串函数,您可以将一个字段分成几个部分(例如:select substr(sql_text,1,100) s1, substr(sql_text,101,100) s2, substr(sql_text,201,100) s3, substr(sql_text,301,100) s4 from dba_hist_sqltext where sql_id = '0cuyjatkcmjf0'
)。 PS:每个ALV单元最多128个字符。
不确定此工具是否适用于所有支持的数据库软件。
还有一个名为 RSDU_EXEC_SQL 的等效程序(在所有 ABAP-based 系统中?)
不幸的是,它们不适用于 SAP 的仿表(集群表等),因为它们只能使用 ABAP 查询 "Open SQL"。
众所周知,SAP 不建议在透明 table 中使用 255+ 字符字段。应该使用几个 255 字段,将文本换行在 LCHR、LRAW 或 STRING 中,或者使用 SO10 文本等。
然而,在维护遗留(和丑陋)开发的同时,经常会出现这样的问题:如何查看存储在数据库中的 char500
或 char1000
字段中的内容?
真实场景:
- 我们有一个开发,其中一些结构以透明方式从
char1000
字段写入和读取 table - 我们知道字段结构,通过
CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
或SO_STRUCT_TO_CHAR
解析字段没问题,所有字段都放得很好 - 通过 SE11/SE16/SE16n 显示字段没有给出任何结果,因为字段被截断为 255,在调试器 AFAIR 中被截断为 132。
有什么标准工具、交易或FM可以用来显示这么长的字段吗?
如果您有 ERP 系统,您可以使用信息类型 1002 手动检查事务 PP01。基本上,它们将文本存储在 table HRP1002 和 HRT1002 中,并使用文本编辑器创建特殊视图。它看起来像这样:http://www.sapfunctional.com/HCM/Positions/Page1.13.jpg
在调试器中,您可以将视图切换为例如HTML 你应该会看到整个字符串,但据我所知,编辑仅限于一定数量的字符。
在DBA驾驶舱(ST04)中,有一个SQL命令行,您可以在其中直接输入"native" SQL命令并将结果显示为ALV视图。使用子字符串函数,您可以将一个字段分成几个部分(例如:select substr(sql_text,1,100) s1, substr(sql_text,101,100) s2, substr(sql_text,201,100) s3, substr(sql_text,301,100) s4 from dba_hist_sqltext where sql_id = '0cuyjatkcmjf0'
)。 PS:每个ALV单元最多128个字符。
不确定此工具是否适用于所有支持的数据库软件。
还有一个名为 RSDU_EXEC_SQL 的等效程序(在所有 ABAP-based 系统中?)
不幸的是,它们不适用于 SAP 的仿表(集群表等),因为它们只能使用 ABAP 查询 "Open SQL"。