簡體   English   中英

Oracle Number數據類型問題

[英]Oracle number data type issue

我正在嘗試在Oracle 11g數據庫中保存一些特定字符(假設為4)。 當我說數據時,我的數字有一個前導零,例如0100 0101等。 oracle為什么截斷前導零。 是否有可能避免這種情況。 我真的很想保存前導零。 請幫忙。

謝謝!

如果要顯示以零開頭的數字,請使用:

to_char(my_number,'fm0000')

如果您確實需要將數字存儲在前導零處,則將其存儲為varchar2,因為您所擁有的字符串是僅包含數字而不是數字的字符串。

上面的TO_CHAR答案是最好的,但是它們需要進行調整,因為TO_CHAR(number, '0000')將添加前導零前導空格,如果存在負號,則為占位符:

SELECT '[' || TO_CHAR(123, '0000') || ']' "Format" FROM DUAL;

Format
-------
[ 0123] <-- note the leading space

要擺脫空間,請使用LTRIM或在格式字符串中使用FM限定符:

SELECT '[' || TO_CHAR(123, 'FM0000') || ']' "Format" FROM DUAL;

Format
-------
[0123] <-- no more leading space

如果要存儲前導零,則將數字存儲為固定長度值的char()或可變長度值的varchar() (或varchar2() )。

數字以二進制格式存儲,沒有前導零的概念。

獲得8位數字的簡單技巧:

substr(your_number + power(10,8), 2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM