1. 程式人生 > >Oracle中NUMBER型別不指定長度和小數點精度與指定的區別!

Oracle中NUMBER型別不指定長度和小數點精度與指定的區別!

在Oracle中Number型別可以用來儲存0,正負定點或者浮點數,可表示的資料範圍在
  1.0 * 10(-130) —— 9.9...9 * 10(125) {38個9後邊帶88個0}
的數字,當Oracle中的數學表示式的值>=1.0*10(126)時,Oracle就會報錯。
Number的資料宣告如下:
表示        作用        說明
Number(p, s)        宣告一個定點數        p(precision)為精度,s(scale)表示小數點右邊的數字個數,精度最大值為38,scale的取值範圍為-84到127
Number(p)        宣告一個整數        相當於Number(p, 0)
Number        宣告一個浮點數        其精度為38,要注意的是scale的值沒有應用,也就是說scale的指不能簡單的理解為0,或者其他的數。

定點數的精度(p)和刻度(s)遵循以下規則:
        當一個數的整數部分的長度 > p-s 時,Oracle就會報錯
        當一個數的小數部分的長度 > s 時,Oracle就會舍入。
        當s(scale)為負數時,Oracle就對小數點左邊的s個數字進行舍入。
        當s > p 時, p表示小數點後第s位向左最多可以有多少位數字,如果大於p則Oracle報錯,小數點後s位向右的數字被舍入

相關推薦

OracleNUMBER型別指定長度小數點精度指定區別!

在Oracle中Number型別可以用來儲存0,正負定點或者浮點數,可表示的資料範圍在  1.0 * 10(-130) —— 9.9...9 * 10(125) {38個9後邊帶88個0}的數字,當Oracle中的數學表示式的值>=1.0*10(126)時,Oracle

Oraclevarchar2型別欄位長度限制使用問題

為紀念中華人民共和國建軍90週年,特此一篇,以此紀念,我軍威武!!!一、問題背景專案中商品釋出,卻沒有儲存成功。二、問題定位初步判斷向資料庫中儲存時出現了錯誤,檢視日誌檔案,由於日誌檔案過大就採用grep進行搜尋(再一次說明grep 的強大)其中 “ReserveProductService.update”

正確生成浮點型的方法,解決sqlachemy Float浮點型的坑,生成float型別時,長度精度均為0,導致查詢到結果!

問題描述 在使用flask_sqlachemy時,給price欄位選擇了Float型別,資料庫用的mysql,生成資料庫表後,發現   from sqlalchemy import Float,Column price = Column(Float,default=0.00) &

oraclenumber資料型別簡單學習

NUMBER (p,s)  p和s範圍: p 1-38  s -84-127 (1)如果s大於0:這時number(p,s),表示有效位最大為p,小數位最多為s,小數點右邊s位置開始四捨五入。 舉例: number(2,1) 有效位最大為2,小數點後最多保留1

Oraclevarchar2型別的欄位長度是按照byte來定義的

很多新手在建資料庫或新增表、欄位時,會這樣忽略一個問題:ORACLE中VARCHAR2型別的欄位長度是按照byte來定義的。如果資料庫使用的字符集是GBK,GB2312或者其他定長字符集的話,這個問題似乎可以被忽略,因為只要把資料庫的欄位長度/2就可以得到你要限制插入該欄位

oraclenumber資料型別對應java的基本資料型別

Oracle資料庫中number型別在hibernate的引用 1)如果不指定number的長度,或指定長度n>18 id number not null,轉換為pojo類時,為java.math.BigDecimal型別 2)如果number的長度在10 &l

oracle只修改年,月

update tmp_table set targetdate=to_date('2006'||substr(to_char(targetdate,‘yyyymmdd’),5,4),'yyyy-mm-dd') where substr(to_char(targetdate,‘yyyymmdd’),,1,4)=

oracle比較alter table t move alter table t shrink space

釋放空間。 管理 man shrink rac oracl 釋放 segment 但是 alter table t move和alter table t shrink space都可以用來進行段收縮,降低高水位HWM,也都可以用來消除行鏈接(Row Chaining)和行遷

oracle 常用的 join on 相關 集合運算的總結

nal 但是 總結 rom 全部 right light style 是把 sql常用聯合查詢的 join on 、 left join(左連接) 、 right join (右連接)、inner join (等值連接)以及常用的集合運算有:union、unionall、m

div li寬度固定 ie6ie7兼容自動換行

pwm https 不兼容 ofo http ace light href lan 我的li因為內容字數不一樣,所以寬度不固定,給他float:left屬性後,ie6和ie7不兼容,不自動換行!我給ul或者li: ul{white-space: nowrap} 屬性還是

對於OracleNumber類型的字段映射成Java的具體類型的問題

www url dbutil ges 直接 res 進制 family logs 我在Oracle中給一個用戶Id字段設置為Number類型,使用JDBC在完成ORM的時候,以為其可以自動轉換為Integer,因為我的POJO類id舒心實用的就是Integer。但事實是,我

oraclenumber對應java數據類型

fill iss blank tex ring 發現 com 不同 types 本文轉自:http://blog.csdn.net/ludongshun2016/article/details/71453125 數據庫中為number類型的字段,在Java類型中對應的有In

oracle的替換函數replacetranslate函數

轉換成 www char 總結 就是 cnblogs lec replace html 1.translate 語法:TRANSLATE(char, from, to) 用法:返回將出現在from中的每個字符替換為to中的相應字符以後的字符串。

oracle資料型別對應java型別[轉載] oracle資料型別對應java型別

oracle中資料型別對應java型別 轉載地址:https://www.cnblogs.com/softidea/p/7101091.html 地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/

OracleClob型別處理解析

   最近利用NHibernate對映型別為Clob欄位在插入資料時發現當字元的位元組數(一個半形字元一個位元組,一個全形字元兩個位元組)在2000-4000之間時報錯(ORA-01461:僅可以插入LONG列的LONG值賦值)。經過不斷查詢資料和自己的試驗該問題終於得到解決,下

Oracletrunc、round 、ceilfloor函式的區別

1、trunc函式 處理數值,對給定數值進行擷取處理,不會對給定數值做四捨五入處理。 語法格式: TRUNC(number[,decimals])--number 待處理的資料,decimals指明需保留小數點後的位數,預設為0 如果引數為負數,則小數點往前取位數

oracle日期型別unix 時間戳的轉換

Unix時間戳記是從'1970-01-01 00:00:00'GMT開始的秒數,表現為整數型。 Oracle中的時間是Date型,以下函式提供了兩種時間轉換的Oracle函式 (1)從Unix時間戳記轉換為Oracle時間 create or replace function

Oracle日期型別 Unix 時間戳的…

Unix時間戳記是從'1970-01-01 00:00:00'GMT開始的秒數,表現為整數型。 Oracle中的時間是Date型,以下函式提供了兩種時間轉換的Oracle函式 (1)從Unix時間戳記轉換為Oracle時間 create or replace function unix_to_oracle(

OracleDate型別日期精度問題

背景分析 需要使用JasperReport統計出使用者交易資料,並生成報表,在根據日期(Date型別)進行統計資料的時候總是出現不科學的錯誤, 我使用的是SqlDeveloper這款資料庫連線工具,資料庫是Oracle 11g。 問題描述 我根據日期group by,

C++char型別陣列的長度問題

char* a =new char[30]; cout<<"未初始化char陣列--sizeof = "<<sizeof(a)<< endl; cout<<"未初始化char陣列--strlen = "<<st