Oracle中數值型及處理方法

2021-08-15 08:39:07 字數 3104 閱讀 7642

number型別的精度表示可以標識資料精確度的位數。對於數字13245.977,當精確到小數點後2位,資料為12345.98,此時精度為7。而當精確到小數點前2位,資料為12300,此時精度為3,因為有3個數字對資料的準確度作出貢獻

number型別中。小數字數可正可負,當為負數時,表示將數字精確到小數點之前的位數,當小數字數為0時,表示將數字精確到正數

指定number型別的列或變數時,小數字數不能超過精度

number(5,2)表示,精度為5,精確到小數點後2位

select abs(-12.45) from dual
結果:21.45

select round(4.37,1) result from dual
結果:4.4

select round(456.37,-1) result from dual
結果:460

select round(456.37) result from dual
結果:456

當小數字數為0或省略時,表示精確到整數

ceil()返回大於等於數值型引數的最小整數

floor()返回小於等於引數的最大整數

mod()返回乙個除法表示式的餘數

mod(被除數,除數)

select mod(5,2) result from dual

結果;1

在mod()中,被除數可以是0

select mod(5,0) result from dual
結果:5

當引數大於0,返回1,當引數小於0,返回-1,當引數為0返回0

引數不能小於0

select power(4,3) result from dual
結果64.4是底數,3是指數

trunc()擷取時不進行四捨五入,而是直接捨去

select trunc(3.789,2) result from dual
結果:3.78

select chr(65) result from dual
結果:a

應用:向資料表中插入不宜直接輸入的字元。在oracle中,『&』用來進行變數引用,當插入含有改符號時,oracle可能會將其解釋為變數引用

insert into test_char(f_char) values('&id=1');
此時pl/sql給出提示視窗,要求輸入變數的值。處理該問題時,首先將其defin選項關閉,再執行插入

set define off

insert into test_char(f_char) values('&id=1');

格式字元『0』

0代表乙個數字位,當原數值沒有數字位與之匹配時,強制新增0

select to_char(12.78,'000.000') result from dual
結果:012.780

格式字元『9』

9代表乙個數字位,當原數值的整數部分沒有數字位與之匹配,不填充任何字元

select to_char(12.78,'999.999') result from dual
結果:12.780

select to_char(0.78,'999.999') result from dual
結果:.780

對於小於1的小數來說,格式引數的個位使用『0』更好

select to_char(0.78,'990.999') result from dual
結果:0.780

格式字元『,』

select to_char(4560000,'99,999,990.00') result from dual
結果:4,560,990,00

格式字元『fm』

select to_char(12.78,'fm000.000') result from dual
結果:012.780

select to_char(12.78,'fm999.999') result from dual
結果:12.78

fm格式符的意義在於遮蔽所有不必要的空格和0

格式字元『$』

select to_char(12.78,'$999.999') result from dual
結果:$12.780

$可以出現在任何位置,而不必出現在開頭

select to_char(12.78,'999.9$99') result from dual
結果:$12.780

如果『fm』和『$』均出現在格式引數中,則fm必須出現在開頭,否則報錯

select to_char(12.78,'fm$999.999') result from dual
結果:$12.78

格式字元『l』

l是指定指定本地化貨幣的標識

select to_char(12.78,'fml999.999') result from dual
結果:¥12.78

格式字元『c』

c返回與資料庫系統環境相關的貨幣種類符號

select to_char(12.78,'fm999.999c') result from dual
結果:12.78cny

cny代表國際標準的人民幣貨幣種類符號

注意:『x』的位數不能小於實際十六進製制數的位數

select to_char(255,'***') from dual
結果:ff

select to_char(255,'x') from dual
結果:##。這是錯誤的結果

Oracle日期型及處理方法講解

sysdate 獲取的日期精確到秒 select add months to date 2010 2 27 yyyy mm dd 1 new date from dual結果 2010 3 27 當某年的2月只有28天,那麼新增乙個月後,返回3月的最後一天 select add months to ...

Oracle的Number型數值儲存及轉換

我們可以通過dump函式來轉換數字的儲存形式,乙個簡單的輸出類似如下格式 sql select dump 1 from dual dump 1 typ 2 len 2 193,2 dump函式的輸出格式類似 型別 長度 符號 指數字 數字1,數字2,數字3,數字20 各位的含義如下 1.型別 num...

Shell中的數值運算及處理

幾個數值處理技巧 小數運算操作 expr 數值1 運算子 數值2 注 使用 使需要轉義如果數值是變數的話,直接使用變數名,如 num1 10 num2 20 echo num1 num2 使用 時不需要轉義 格式 let 變數 let 變數,let 變數 let 變數,let 變數 增量,let 變...