在 Oracle 中创建前导零

Create leading zero in Oracle

我正在使用具有数据库 Oracle

Adempiere

我 window 从 table 呼叫 Stock Code M_StockCode

字段是 CodeDescription

目前,Code数据类型是NumberDescriptionVarchar2

我想输入 SparepartCode 01Body RepairCode 02

当我在 Adempiere 中输入数据并保存时,将显示 SparepartCode 1(不带前导零)

我试过添加 LPAD 函数,但仍然失败。

如何将 01 同时放入 Adempiere 界面和数据库中?

任何建议将不胜感激:)

NUMBER 不能有前导零,STRING 可以。

  1. 如果要存储数据库中前导零的代码table,则你必须使用 VARCHAR2 而不是 NUMBER.

  2. 如果您只想显示带前导零的数字,则使用TO_CHAR将数字转换成字符串。

例如,

SQL> SELECT TO_CHAR(1, '00') FROM DUAL;

TO_
---
 01

您也可以使用 LPAD,但请记住,结果的数据类型是字符串而不是数字。

例如,

SQL> SELECT LPAD(1, 2, '0') FROM DUAL;

LP
--
01

在 Adempiere 中,您通过 Application Dictionary 管理模型,它相当于关系数据库使用的数据字典。

  1. 以系统管理员身份登录 Adempiere。
  2. Select 菜单选项 Application Dictionary->Table & Column
  3. Select M_StockCode table 并从其 window 中单击 Columns 选项卡
  4. 此处,select 代码 列,如果需要,可切换到 表单 视图
  5. 现在,从下拉 select ReferenceString 并设置一个 长度等于2.
  6. 最后,点击 Synchronize Column 按钮让 Admepiere 修改数据库。

如果此代码是某种分类,则在应用程序词典中创建新的 参考文献 类型可能会有用,然后您可以将您的专栏指向它;这将确保一致性,为用户提供一个 selection 来选择而不是输入值。 Reference 可以是 List 类型,这对于短列表或 Table driven 当分类比较不稳定并且需要用户维护时很有用。