我需要在步驟string
到decimal
之間轉換,固定小數分隔符.
獨立於文化設置。接下來,我知道.
之後的十進制數字僅限於小數點後6位,並且.
之前的位數沒有限制。使用Oracle文檔和示例對格式字符串我現在只是這個解決方案:D
前9
字符如何使用具有固定小數點字符的TO_NUMBER函數從字符串轉換爲數字字符?
v_number := TO_NUMBER(v_string, '9999999999999999999999999999999999D999999', 'NLS_NUMERIC_CHARACTERS = ''. ''');
數量是允許的最大數量。我覺得這個格式字符串非常糟糕。有沒有更好的格式字符串爲這個一般轉換或某種方式省略函數的第二個參數?一般來說,我只需要傳遞函數NLS參數來告訴它,我只是想用十進制分隔符.
進行轉換,但第二個參數在這種情況下也是強制性的。
如果字符串形式的數字總是像'9999.99999'那麼您爲什麼不簡單地使用TO_NUMBER()?你想在小數點後面加上6位數的約束嗎? – Chandu 2011-04-05 13:13:27
@cybernate:'to_number(:X)'將在會話的NLS設置中解析X,它可能與「。」有不同的數字分隔符。 – 2011-04-05 13:31:19
@Vincent:Thx的澄清...... – Chandu 2011-04-05 13:40:28