【问题标题】:Storing numbers in character type columns在字符类型列中存储数字
【发布时间】:2021-12-28 03:02:22
【问题描述】:

我正在研究SAP的数据表字段的数据类型。 我意识到只存储数字的字段有时是 varchar 或 char 数据类型。例如,KUNNR(客户编号)和 BUKRS(公司代码)是字符数据类型。

在确定字段的数据类型仅包含其名称定义的数字时,将字段的数据类型定义为 varchar/char 而不是 int 的目的或好处是什么?

编辑:SAP 具有“numc”数据类型和数字文本,以及“INT1/2/4/8”数据类型用于整数,但使用 char/varchar 代替客户编号或公司代码。如果您知道他们为什么在上述情况下使用 char 数据类型,请帮助我。我现在正在尝试通过引用 SAP 的数据模式来创建数据模式。


引用 SAP 表/字段详细信息的页面:

http://www.saptables.net/

https://sapstack.com/

【问题讨论】:

  • 请编辑您的问题以包含所有详细信息,这样就不需要导航到外部网页(将来可能会消失)来理解问题。而且,“趋向”这个词并不能反映确切的情况;事实上,它们可以通过字符或数字类型来表示,我认为没有任何趋势。
  • 我不知道所有原因,但其中一个原因是 SAP ERP 软件可以自定义,以便“对象”ID 可以是数字(自动递增)或字母数字(手动选择)。 MANDT 曾经可以在 SAP 内部系统中包含字符。关于所有的原因,很难说:SAP ERP 一直保持着向上的兼容性,SAP ERP 软件曾经存在 40 年。
  • Sap 商店数字为十进制。唯一包含数字但存储为字符串的类型是numc,其名称中的c 就是原因。它通常用于标识符或枚举数(如行号)
  • 有些字段使用 numc 而不是 char,但其他一些字段使用 char,例如sapstack.com/tables/dataelements.php?field=BUZEI
  • >>Sandra Rossi 我明白你说的。 SAP 可能希望内部和外部(针对特定公司)未来开发的兼容性。但是今天看遍SAP数据表的数百个字段,几乎所有的字段,包括名称表示数字,都是varchar或char。我不认为我们想知道他们大量使用 char 而不是整数有什么好处。

标签: sql relational-database sqldatatypes sap-data-dictionary


【解决方案1】:

全球供应链中的公司通过电子数据交换 (EDI) 交换其交易数据。数据通常是可变长度的 XML 或类似的东西。 SAP 主要使用 varchar 来有效地为他们的应用程序使用数据。交易的 XML 消息数据因企业而异;有时数字有时是字符,但需要处理并将其保存到数据库中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 2015-06-12
    • 2020-03-03
    • 2021-12-15
    • 1970-01-01
    • 2017-09-25
    • 2010-10-25
    • 1970-01-01
    相关资源
    最近更新 更多