0

私のデータベースには、多くの末尾の小数で保存された数値があります。

-99.00000940061668045423779799954877039

PRNCT_CHANGE    NUMBER

`

この列を呼び出して、シェル変数に格納されている値を取得しようとすると、次のようになります。

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 ステートメント内で数値をフォーマットする方法はありますか?

4

1 に答える 1

2

小数点以下は他のことに役に立たないのですか? 現時点では必要ないという理由だけでデータを破棄することはありません。データベースから取り出すときに変換する必要があります。

select trunc(prnct_change) from count_statistics

数値に対する on のデフォルトの動作はTRUNC()、すべての小数点以下の桁数を削除することです。

于 2013-07-25T12:50:42.897 に答える