返回的需求数是一个整数而不是float,错误:预期的整数表达式

时间:2013-07-25 12:48:02

标签: oracle shell decode

在我的数据库中,我的数字存储有许多尾随小数,即:。

-99.00000940061668045423779799954877039

PRNCT_CHANGE    NUMBER

`

当我尝试调用此列并将值存储到shell变量中时,即:。

get_count () {
    sqlplus -s user/pass <<!
    set heading off
    set feedback off
    set pages 0
    select PRNCT_CHANGE
    FROM SEMANTIC.COUNT_STATISTICS
    ;
!
}

count=$(get_count $1)

它返回:

line 72: [:   -99.000009: integer expression expected

我正在努力弄清楚如何解决这个问题。 我不知道如何摆脱所有这些小数空间...

update SEMANTIC.COUNT_STATISTICS
set prnct_change =
(
   DECODE(OLD_COUNT, 0, NULL, ((NEW_COUNT-OLD_COUNT)/OLD_COUNT*100))
)

如果有人知道请帮忙。

有没有办法在UPDATE语句中格式化数字?

1 个答案:

答案 0 :(得分:2)

小数位对其他东西没用吗?我不会因为你现在不需要它而销毁数据;当你把它从数据库中取出时,你应该对它进行转换:

select trunc(prnct_change) from count_statistics

TRUNC()对数字的默认行为是删除所有小数位。