日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

ORACLE數(shù)據(jù)類型

系統(tǒng) 1980 0
本文轉(zhuǎn)自: http://www.baanerp.com/post/95.html
字段類型 ? 中文說明 ? 限制條件 ? 其它說明 ? ?
? CHAR ? 固定長度字符串 ? 最大長度2000 ? bytes ? ? ? ? ?
? VARCHAR2 ? 可變長度的字符串 ? 最大長度4000 ? bytes ? ? 可做索引的最大長度749 ? ?
? NCHAR ? 根據(jù)字符集而定的固定長度字符串 ? 最大長度2000 ? bytes ? ? ? ? ?
? NVARCHAR2 ? 根據(jù)字符集而定的可變長度字符串 ? 最大長度4000 ? bytes ? ? ? ? ?
? DATE ? 日期(日-月-年) ? DD-MM-YY(HH-MI-SS) ? 經(jīng)過嚴格測試,無千蟲問題 ? ?
? LONG ? 超長字符串 ? 最大長度2G(231-1) ? 足夠存儲大部頭著作 ? ?
? RAW ? 固定長度的二進制數(shù)據(jù) ? 最大長度2000 ? bytes ? ? 可存放多媒體圖象聲音等 ? ?
? LONG ? RAW ? 可變長度的二進制數(shù)據(jù) ? 最大長度2G ? 同上 ? ?
? BLOB ? 二進制數(shù)據(jù) ? 最大長度4G ? ? ? ?
? CLOB ? 字符數(shù)據(jù) ? 最大長度4G ? ? ? ?
? NCLOB ? 根據(jù)字符集而定的字符數(shù)據(jù) ? 最大長度4G ? ? ? ?
? BFILE ? 存放在數(shù)據(jù)庫外的二進制數(shù)據(jù) ? 最大長度4G ? ? ? ?
? ROWID ? 數(shù)據(jù)表中記錄的唯一行號 ? 10 ? bytes ? ********.****.****格式,*為0或1 ? ?
? NROWID ? 二進制數(shù)據(jù)表中記錄的唯一行號 ? 最大長度4000 ? bytes ? ?
? NUMBER(P,S) ? 數(shù)字類型 ? P為整數(shù)位,S為小數(shù)位 ? ?
? DECIMAL(P,S) ? 數(shù)字類型 ? P為整數(shù)位,S為小數(shù)位 ? ?
? INTEGER ? 整數(shù)類型 ? 小的整數(shù) ? ?
? FLOAT ? 浮點數(shù)類型 ? NUMBER(38),雙精度 ? ?
? REAL ? 實數(shù)類型 ? NUMBER(63),精度更高????
數(shù)據(jù)類型 參數(shù) 描述
char(n) n=1 to 2000字節(jié) 定長字符串,n字節(jié)長,如果不指定長度,缺省為1個字節(jié)長(一個漢字為2字節(jié))
varchar2(n) n=1 to 4000字節(jié) 可變長的字符串,具體定義時指明最大長度n,
這種數(shù)據(jù)類型可以放數(shù)字、字母以及ASCII碼字符集(或者EBCDIC等數(shù)據(jù)庫系統(tǒng)接受的字符集標準)中的所有符號。
如果數(shù)據(jù)長度沒有達到最大值n,Oracle 8i會根據(jù)數(shù)據(jù)大小自動調(diào)節(jié)字段長度,
如果你的數(shù)據(jù)前后有空格,Oracle 8i會自動將其刪去。VARCHAR2是最常用的數(shù)據(jù)類型。
可做索引的最大長度3209。
number(m,n) m=1 to 38
n=-84 to 127
可變長的數(shù)值列,允許0、正值及負值,m是所有有效數(shù)字的位數(shù),n是小數(shù)點以后的位數(shù)。
如:number(5,2),則這個字段的最大值是99,999,如果數(shù)值超出了位數(shù)限制就會被截取多余的位數(shù)。
如:number(5,2),但在一行數(shù)據(jù)中的這個字段輸入575.316,則真正保存到字段中的數(shù)值是575.32。
如:number(3,0),輸入575.316,真正保存的數(shù)據(jù)是575。
date 從公元前4712年1月1日到公元4712年12月31日的所有合法日期,
Oracle 8i其實在內(nèi)部是按7個字節(jié)來保存日期數(shù)據(jù),在定義中還包括小時、分、秒。
缺省格式為DD-MON-YY,如07-11月-00 表示2000年11月7日。
long 可變長字符列,最大長度限制是2GB,用于不需要作字符串搜索的長串數(shù)據(jù),如果要進行字符搜索就要用varchar2類型。
long是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
raw(n) n=1 to 2000 可變長二進制數(shù)據(jù),在具體定義字段的時候必須指明最大長度n,Oracle 8i用這種格式來保存較小的圖形文件或帶格式的文本文件,如Miceosoft Word文檔。
raw是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
long raw 可變長二進制數(shù)據(jù),最大長度是2GB。Oracle 8i用這種格式來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、 視頻 等非文本文件。
在同一張表中不能同時有l(wèi)ong類型和long raw類型,long raw也是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
blob
clob
nclob
三種大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件,最大長度是4GB。
LOB有幾種類型,取決于你使用的字節(jié)的類型,Oracle 8i實實在在地將這些數(shù)據(jù) 存儲 在數(shù)據(jù)庫內(nèi)部保存。
可以執(zhí)行讀取、存儲、寫入等特殊操作。
bfile 在數(shù)據(jù)庫外部保存的大型二進制對象文件,最大長度是4GB。
這種外部的LOB類型,通過數(shù)據(jù)庫記錄變化情況,但是數(shù)據(jù)的具體保存是在數(shù)據(jù)庫外部進行的。
Oracle 8i可以讀取、查詢BFILE,但是不能寫入。
大小由 操作系統(tǒng) 決定。
數(shù)據(jù)類型是列或存儲過程中的一個屬性。

??? Oracle支持的數(shù)據(jù)類型可以分為三個基本種類:字符數(shù)據(jù)類型、數(shù)字數(shù)據(jù)類型以及表示其它數(shù)據(jù)的數(shù)據(jù)類型。

??? 字符數(shù)據(jù)類型

???? CHAR ??????????? char數(shù)據(jù)類型存儲固定長度的字符值。一個CHAR數(shù)據(jù)類型可以包括1到2000個字符。如果對CHAR沒有明確地說明長度,它的默認長度則設(shè)置為1。如果對某個CHAR類型變量賦值,其長度小于規(guī)定的長度,那么Oracle自動用空格填充。

???? VARCHAR2 存儲可變長度的字符串。雖然也必須指定一個VARCHAR2數(shù)據(jù)變量的長度,但是這個長度是指對該變量賦值的最大長度而非實際賦值長度。不需用空格填充。最多可設(shè)置為4000個字符。因為VARCHAR2數(shù)據(jù)類型只存儲為該列所賦的字符(不加空格),所以VARCHAR2需要的存儲空間比CHAR數(shù)據(jù)類型要小。

??? Oracle推薦使用VARCHAR2

???? NCHAR和NVARCHAR2 NCHAR和NVARCHAR2數(shù)據(jù)類型分別存儲固定長度與可變長度的字符串,但是它們使用的是和數(shù)據(jù)庫其他類型不同的字符集。在創(chuàng)建數(shù)據(jù)庫時,需要指定所使用的字符集,以便對數(shù)據(jù)中數(shù)據(jù)進行編碼。還可以指定一個輔助的字符集[即本地語言集]。NCHAR和NVARCHAR2類型的列使用輔助字符集。NCHAR和NVARCHAR2類型的列使用輔助字符集。

???? 在Oracle 9i中,可以以字符而不是字節(jié)為單位表示NCHAR和NVARCHAR2列的長度。

???? LONG long數(shù)據(jù)類型可以存放2GB的字符數(shù)據(jù),它是從早期版本中繼承下來的。現(xiàn)在如果存儲大容量的數(shù)據(jù),Oracle推薦使用CLOB和NCLOB數(shù)據(jù)類型。在表和SQL語句中使用LONG類型有許多限制。

???? CLOB和NCLOB ?? CLOB和NCLOB數(shù)據(jù)類型可以存儲多達4GB的字符數(shù)據(jù)。NCLOB數(shù)據(jù)類型可存儲NLS數(shù)據(jù)。

???? 數(shù)字數(shù)據(jù)類型

???? Oracle使用標準、可變長度的內(nèi)部格式來存儲數(shù)字。這個內(nèi)部格式精度可以高達38位。

???? NUMBER 數(shù)據(jù)類型可以有兩個限定符,如:column NUMBER(precision,scale)。precision表示數(shù)字中的有效位。如果沒有指定precision的話,Oracle將使用38作為精度。scale表示小數(shù)點右邊的位數(shù),scale默認設(shè)置為0。如果把scale設(shè)成負數(shù),Oracle將把該數(shù)字取舍到小數(shù)點左邊的指定位數(shù)。

???? 日期數(shù)據(jù)類型

????? Oracle標準日期格式為:DD-MON-YY HH:MI:SS

????? 通過修改實例的參數(shù)NLS_DATE_FORMAT,可以改變實例中插入日期的格式。在一個會話期間,可以通過Alter session SQL命令來修改日期,或者通過使用SQL語句的TO_DATE表達式中的參數(shù)來更新一個特定值。

????? 其它的數(shù)據(jù)類型

????? RAW和LONG RAW ??? RAW和LONG RAW數(shù)據(jù)類型主要用于對數(shù)據(jù)庫進行解釋。指定這兩種類型時,Oracle以位的形式來存儲數(shù)據(jù)。RAW數(shù)據(jù)類型一般用于存儲有特定格式的對象,如位圖。RAW數(shù)據(jù)類型可占用2KB的空間,而LONG RAW數(shù)據(jù)類型則可以占用2GB大小。

????? ROWID ROWID是一種特殊的列類型,稱之為偽列(pseudocolumn)。ROWID偽列在SQL SELECT語句中可以像普通列那樣被訪問。Oracle數(shù)據(jù)庫中每行都有一個偽列。ROWID表示行的地址,ROWID偽列用ROWID數(shù)據(jù)類型定義。

????? ROWID與磁盤驅(qū)動的特定位置有關(guān),因此,ROWID是獲得行的最快方法。但是,行的ROWID會隨著卸載和重載數(shù)據(jù)庫而發(fā)生變化,因此建議不要在事務(wù)中使用ROWID偽列的值。例如,一旦當前應(yīng)用已經(jīng)使用完記錄,就沒有理由保存行的ROWID。不能通過任何SQL語句來設(shè)置標準的ROWID偽列的值。

???? 列或變量可以定義成ROWID數(shù)據(jù)類型,但是Oracle不能保證該列或變量的值是一個有效的ROWID。

??? LOB( 大型對象)數(shù)據(jù)類型,可以保存4GB的信息。LOB有以下3中類型:

???? < CLOB >,只能存儲字符數(shù)據(jù)

??? < NCLOB >,保存本地語言字符集數(shù)據(jù)

??? < BLOB >?? ,以二進制信息保存數(shù)據(jù)

???? 可以指定將一個LOB數(shù)據(jù)保存在Oracle數(shù)據(jù)庫內(nèi),還是指向一個包含次數(shù)據(jù)的外部文件。

???? LOB可以參與事務(wù)。管理LOB中的數(shù)據(jù)必須通過DBMS_LOB PL/SQL內(nèi)置軟件包或者OGI接口。

???? 為了便于將LONG數(shù)據(jù)類型轉(zhuǎn)換成LOB,Oracle 9i包含許多同時支持LOB和LONG的函數(shù),喊包括一個ALTER TABLE語句的新選擇,它允許將LONG數(shù)據(jù)類型自動轉(zhuǎn)換成LOB。

??? BFILE

???? BFILE數(shù)據(jù)類型用做指向存儲在Oracle數(shù)據(jù)庫以外的文件的指針。

???? XML Type

???? 作為對XML支持的一部分,Oracle 9i包含了一個新的數(shù)據(jù)類型XML Type。定義為XMLType的列將存儲一個字符LOB列中的XML文檔。有許多內(nèi)置的功能可以使你從文檔中抽取單個節(jié)點,還可以在XML Type文檔中對任何節(jié)點創(chuàng)建索引。

???? 用戶自定義數(shù)據(jù)

???? 從Oracle 8以后,用戶可以定義自己的復(fù)雜數(shù)據(jù)類型,它們由Oracle基本數(shù)據(jù)類型組合而成。

???? AnyType、AnyData和AnyDataSet

????? Oracle包括3個新的數(shù)據(jù)類型,用于定義在現(xiàn)有數(shù)據(jù)類型之外的數(shù)據(jù)結(jié)構(gòu)。其中每種數(shù)據(jù)類型必須用程序單元來定義,以便讓Oracle9i知道如何處理這些類型的特定實現(xiàn)。

??? 類型轉(zhuǎn)換

??? Oracle會自動將某些數(shù)據(jù)類型轉(zhuǎn)換成其他的數(shù)據(jù)類型,轉(zhuǎn)換取決于包括該值的SQL語句。

??? 數(shù)據(jù)轉(zhuǎn)換還可以通過Oracle的類型轉(zhuǎn)換函數(shù)顯示地進行。

??? 連接與比較

??? 在大多數(shù)平臺上Oracle SQL中的連接操作符用兩條豎線(||)表示。連接是將兩個字符值連接。Oracle的自動類型轉(zhuǎn)換功能使得兩個數(shù)字值也可以進行連接。

??? NULL

??? NULL值是關(guān)系數(shù)據(jù)庫的重要特征之一。實際上,NULL不代表任何值,它表示沒有值。如果要創(chuàng)建表的一個列,而這個列必須有值,那么應(yīng)將它指定為NOT NULL,這表示該列不能包含NULL值。

??? 任何數(shù)據(jù)類型都可以賦予NULL值。NULL值引入了SQL運算的三態(tài)邏輯。如果比較的一方是NULL值,那么會出現(xiàn)3種狀態(tài):TURE、FALSE以及兩者都不是。

??? 因為NULL值不等于0或其他任何值,所以測試某個數(shù)據(jù)是否為NULL值只能通過關(guān)系運算符IS NULL來進行。

??? NULL值特別適合以下情況:當一個列還未賦值時。如果選擇不使用NULL值,那么必須對行的所有列都要賦值。這實際上也取消了某列不需要值的可能性,同時對它賦的值也很容易產(chǎn)生誤解。這種情況則可能誤導(dǎo)終端用戶,并且導(dǎo)致累計操作的錯誤結(jié)果。

number(p,s)
p:1~38
s:-84~127
p>0,對s分2種情況:1. s>0
精確到小數(shù)點右邊s位,并四舍五入。然后檢驗有效數(shù)位是否<=p;如果s>p,小數(shù)點右邊至少有s-p個0填充。
2. s<0
精確到小數(shù)點左邊s位,并四舍五入。然后檢驗有效數(shù)位是否<=p+|s|

123.2564 NUMBER 123.2564

1234.9876 NUMBER(6,2) 1234.99

12345.12345 NUMBER(6,2) Error

1234.9876 NUMBER(6) 1235

12345.345 NUMBER(5,-2) 12300

1234567 NUMBER(5,-2) 1234600

12345678 NUMBER(5,-2) Error

123456789 NUMBER(5,-4) 123460000

1234567890 NUMBER(5,-4) Error

12345.58 NUMBER(*, 1) 12345.6

0.1 NUMBER(4,5) Error

0.01234567 NUMBER(4,5) 0.01235

0.09999 NUMBER(4,5) 0.09999

ORACLE數(shù)據(jù)類型


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 东乌珠穆沁旗| 黄大仙区| 怀集县| 龙里县| 武川县| 鲁山县| 日喀则市| 黔西| 犍为县| 婺源县| 沧州市| 资中县| 襄城县| 永靖县| 余干县| 汉阴县| 灌南县| 新津县| 迁安市| 宁国市| 中江县| 镇宁| 黑山县| 资中县| 宝兴县| 尼木县| 安康市| 聂荣县| 万州区| 新津县| 湖北省| 弋阳县| 长乐市| 任丘市| 屯门区| 濮阳县| 郎溪县| 白朗县| 彰武县| 德保县| 股票|