【发布时间】:2018-11-21 12:02:59
【问题描述】:
我在 oracle 中运行以下查询。
WITH
ta AS (
SELECT account_coid
,txn_id
,cbdev.cbzdt(effective_date) AS effective_date
,cbdev.cbchr(utl_raw.substr(txn_data, 113, 20)) AS CESG_amt
FROM bs_transaction
WHERE sub_type = 127469880)
SELECT
cast(ta.CESG_amt as DECIMAL (20,2)) AS cesg_amt
from ta
inner join ....
在这里,我得到的结果 (cesg_amt) 为 -156.57。但我需要-0000000000156.57的结果。
我需要保留 - 的前导零(前导 0 以及小数点后的两位数)。
我在查询中尝试了to_char(ta.CESG_amt, '0000000000000.00') AS cesg_amt,但没有用。
能否请您帮我在 DECIMAL 字段中需要做什么才能得到如下结果。
【问题讨论】:
-
to_char()应该做你想做的事。 -
to_char()有什么用?当你使用它时会发生什么?此外,在 Oracle 中最常见的是使用 NUMBER 数据类型,而不是 DECIMAL。 -
@Boneist 当我在这种情况下使用 to_char() 时,我得到的值令人惊讶地为 0.00。我在调用 oracle 数据库的脚本中使用此查询。对可能出了什么问题有任何想法。
-
in a script with calls to the oracle db什么样的脚本?一个unix脚本? SQLPlus 脚本?还有什么?如果您直接对数据库运行查询(例如在 SQLPLus/Toad/SQL Developer/等中)会发生什么?