在Oracle中创建前导零



我使用的是Adempiere,它有数据库Oracle

我有一个窗口叫做Stock Code从表叫做M_StockCode

字段为CodeDescription

目前Code数据类型为Number, Description数据类型为Varchar2

我想用Code 01输入Sparepart,用Code 02输入Body Repair

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

我试着把LPAD函数,但它仍然失败。

我怎么能把01既在addempiere界面和数据库?

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

  1. 如果您希望在数据库表中存储前导为0的代码,则必须使用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

在addempiere中,您通过应用程序字典管理模型,它相当于关系数据库使用的数据字典。

  1. 以系统管理员身份登录到Adempiere。
  2. 选择菜单选项Application Dictionary->Table & Column
  3. 选择M_StockCode表并在其窗口中单击Columns选项卡。
  4. 在这里,选择Code列,如果需要切换到Form view
  5. 现在,从下拉菜单中选择StringReference值,并设置Length = 2。
  6. 最后,点击Synchronize Column按钮,让Admepiere修改数据库。

如果这段代码是某种分类,那么在应用程序字典中创建新的引用类型可能会很有用,然后您可以将您的列指向它;这将确保一致性,为用户提供可供选择的选项,而不是输入值。Reference可以是List类型,这对于短列表很方便,或者是Table驱动,这在分类比较不稳定并且需要用户维护时很有用。

相关内容

  • 没有找到相关文章

最新更新