对于ABAP中的透明表字段,我应该使用STRING还是SSTRING / CHAR?

问题描述 投票:0回答:1

我需要创建一个Z表来存储修改某些自定义对象的原因。

在用户界面中,用户将选择一个原因ID,然后选择填写一个文本框。该表将或多或少地包含以下字段:

key objectID
key changeReasonID
    changedOn
    changedBy
    comments

我的疑问在于评论字段。我阅读了documentation有关STRING和SSTRING的限制,但我不清楚透明表中使用的STRING类型字段的长度是否有限。

即使长度不受限制(至少受数据库限制),我不确定使用这种方法是否是个好主意,还是建议使用固定长度的CHAR / SSTRING类型呢?

**我的系统正在运行MSSQL数据库。

sap abap
1个回答
2
投票

字符串在ABAP结构/表和数据库中都具有无限长度。

大多数数据库在此列中仅存储一个指针,该指针指向存储在不同内存段中的实际CLOB值。结果,它们限制了这些列的使用,并且可能不允许您将它们用作键或索引。

如果我没记错的话,ABAP每个结构最多支持一个字符串,这自然限制了它的用例。还应考虑ABAP结构具有最大大小。

对于您的情况,如果注释将保留为唯一的长字段,并且如果您实际上可以存储无限制的输入(->安全约束?),则字符串听起来是一个合理的选择。

如果不确定未来会带来什么,或者不确定安全性,您可能希望选择sstring或仅选择长字符。

© www.soinside.com 2019 - 2024. All rights reserved.