【问题标题】:oracle forms 12. how to display leading zero of decimal numbersoracle forms 12. 如何显示十进制数的前导零
【发布时间】:2020-04-07 08:42:25
【问题描述】:

我希望将十进制数字(来自查询)显示到文本项中。 如果我设置

:TXT_ITEM := '0,000123456789'

它有效。但是,如果:TXT_ITEM 绑定到数值表字段,则值显示为,000123456789

我试图在几个触发器(post-change、when-new-record-instance、post-text...)上强制使用格式编号,但未成功。另一方面,设置 format_mask 会强制我的 DB 值为给定的小数位数。

如何让前导零显示?

【问题讨论】:

  • 当您说“设置格式掩码”时,您是指在字段属性中设置它,还是按照您的帖子前面所述通过代码设置它?

标签: oracle decimal oracleforms


【解决方案1】:

看看这两个选项是否有帮助。

样本数据:

SQL> create table test as
  2    (select 12.34 col             from dual union all
  3     select 0.1234003             from dual union all
  4     select -13.43432203          from dual union all
  5     select 0.00012345221         from dual union all
  6     select -0.002412428238234821 from dual
  7    );

Table created.

SQL> desc test;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COL                                                NUMBER

SQL> select col,
  2    regexp_replace(col, '^(-?)([.,])', '\10\2') result1,
  3    rtrim(to_char(col, 'fm90D999999999999999999999'), '.') result2
  4  from test;

       COL RESULT1                   RESULT2
---------- ------------------------- -------------------------
     12,34 12,34                     12,34
  ,1234003 0,1234003                 0,1234003
-13,434322 -13,43432203              -13,43432203
,000123452 0,00012345221             0,00012345221
-,00241243 -0,002412428238234821     -0,002412428238234821

SQL>

如何在表单中使用它/它们?正是这样 - 你会例如

select regexp_replace(col, '^(-?)([.,])', '\10\2')
  into :block.text_item
  from your_table
  where some_condition;

【讨论】:

    【解决方案2】:

    好像表中相关的数值数据属于类型

    NUMBER(13,12) 
    

    在这种情况下,将 Property PaletteData 部分中的 TXT_ITEMs Format Mask 属性设置为

    0D000000000000
    

    具有13 的精度和12 值的比例。

    考虑到比例部分是固定的,您可以根据列的精度值在D 字符之前添加更多零,例如为NUMBER(14,12) 保留D 之前的两个零或为NUMBER(15,12) 保留三个零。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 2013-08-05
      • 2013-05-10
      • 2018-12-18
      相关资源
      最近更新 更多