日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE的所有字段类型

發布時間:2024/4/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE的所有字段类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?http://space.itpub.net/7648593/viewspace-545486

字段類型 ????????? ?中文說明 ??????????????????????????????????????????????????? ????? ?限制條件 ? 其它說明 ? ?
? CHAR ????????????????? 固定長度字符串????????????????????????????????????????????????最大長度2000 ? bytes ? ? ?
? VARCHAR2 ???? ? 可變長度的字符串???????????????????????????????????? ??????? 最大長度4000 ? bytes ? ? 可做索引的最大長度749 ? ?
? NCHAR ??????????? ? 根據字符集而定的固定長度字符串?????? ??????? ? 最大長度2000 ? bytes ? ? ? ?
? NVARCHAR2???? 根據字符集而定的可變長度字符串 ?????????????? 最大長度4000 ? bytes ? ? ? ?
? DATE ????????????????? ?日期(日-月-年) ? DD-MM-YY(HH-MI-SS) ? 經過嚴格測試,無千蟲問題 ? ?
? LONG?????????????????? 超長字符串???????????????????????????????????????????????????? ?? 最大長度2G(231-1) ? 足夠存儲大部頭著作 ? ?
? RAW???????????????????? 固定長度的二進制數據???????????????????????????????????? 最大長度2000 ? bytes ? ? 可存放多媒體圖象聲音等 ? ?
? LONG?????????????????? RAW ? 可變長度的二進制數據?????????????????????????最大長度2G ? 同上 ? ?
? BLOB?????????????????? 二進制數據??????????????????????????????????????????????????????????最大長度4G ? ? ?
? CLOB?????????????????? 字符數據??????????????????????????????????????????????????????????????最大長度4G ? ? ?
? NCLOB???????????????? 根據字符集而定的字符數據?????????????????????? ???? 最大長度4G ? ? ?
? BFILE?????????????????? 存放在數據庫外的二進制數據??????????????????? ???? 最大長度4G ? ? ?
? ROWID???????????????? 數據表中記錄的唯一行號??????????????????????????? ? ? 10 ? bytes ? ********.****.****格式,*為0或1 ? ?
? NROWID????????????? 二進制數據表中記錄的唯一行號?? ?????????? ??? ? 最大長度4000 ? bytes ? ?
? NUMBER(P,S)??? 數字類型?????????????????????????????????????????????????????? ???? ?P為整數位,S為小數位 ? ?
? DECIMAL(P,S)??? 數字類型????????????????????????????????????????????????????? ? ?? ? P為整數位,S為小數位 ? ?
? INTEGER?????????????整數類型?????????????????????????????????????????????????????????? ??小的整數 ? ?
? FLOAT????????????????? 浮點數類型???????????????????????????????????????????????????? ??? NUMBER(38),雙精度 ? ?
? REAL?????????????????? 實數類型???????????????????????????????????????????????? ???????????? NUMBER(63),精度更高????

http://blog.csdn.net/redarmy_chen/article/details/7024384

字段類型??? 中文說明??? 限制條件??? 其它說明????

?? CHAR??? 固定長度字符串??? 最大長度2000??? bytes??????????

?? VARCHAR2??? 可變長度的字符串??? 最大長度4000??? bytes????? 可做索引的最大長度749????

?? NCHAR??? 根據字符集而定的固定長度字符串??? 最大長度2000??? bytes??????????

?? NVARCHAR2??? 根據字符集而定的可變長度字符串??? 最大長度4000??? bytes??????????

?? DATE??? 日期(日-月-年)??? DD-MM-YY(HH-MI-SS)??? 經過嚴格測試,無千蟲問題????

?? LONG??? 超長字符串??? 最大長度2G(231-1)??? 足夠存儲大部頭著作????

?? RAW??? 固定長度的二進制數據??? 最大長度2000??? bytes????? 可存放多媒體圖象聲音等????

?? LONG??? RAW??? 可變長度的二進制數據??? 最大長度2G??? 同上????

?? BLOB??? 二進制數據??? 最大長度4G????????

?? CLOB??? 字符數據??? 最大長度4G????????

?? NCLOB??? 根據字符集而定的字符數據??? 最大長度4G????????

?? BFILE??? 存放在數據庫外的二進制數據??? 最大長度4G????????

?? ROWID??? 數據表中記錄的唯一行號??? 10??? bytes??? ********.****.****格式,*為0或1????

?? NROWID??? 二進制數據表中記錄的唯一行號??? 最大長度4000??? bytes????

?? NUMBER(P,S)??? 數字類型??? P為整數位,S為小數位????

?? DECIMAL(P,S)??? 數字類型??? P為整數位,S為小數位????

?? INTEGER??? 整數類型??? 小的整數????

?? FLOAT??? 浮點數類型??? NUMBER(38),雙精度????

?? REAL??? 實數類型??? NUMBER(63),精度更高????

數據類型 參數 描述

char(n) n=1 to 2000字節 定長字符串,n字節長,如果不指定長度,缺省為1個字節長(一個漢字為2字節)

varchar2(n) n=1 to 4000字節 可變長的字符串,具體定義時指明最大長度n,

這種數據類型可以放數字、字母以及ASCII碼字符集(或者EBCDIC等數據庫系統接受的字符集標準)中的所有符號。

如果數據長度沒有達到最大值n,Oracle 8i會根據數據大小自動調節字段長度,

如果你的數據前后有空格,Oracle 8i會自動將其刪去。VARCHAR2是最常用的數據類型。

可做索引的最大長度3209。

number(m,n) m=1 to 38

n=-84 to 127 可變長的數值列,允許0、正值及負值,m是所有有效數字的位數,n是小數點以后的位數。

如:number(5,2),則這個字段的最大值是99,999,如果數值超出了位數限制就會被截取多余的位數。

如:number(5,2),但在一行數據中的這個字段輸入575.316,則真正保存到字段中的數值是575.32。

如:number(3,0),輸入575.316,真正保存的數據是575。?

date 無 從公元前4712年1月1日到公元4712年12月31日的所有合法日期,

Oracle 8i其實在內部是按7個字節來保存日期數據,在定義中還包括小時、分、秒。

缺省格式為DD-MON-YY,如07-11月-00 表示2000年11月7日。?

long 無 可變長字符列,最大長度限制是2GB,用于不需要作字符串搜索的長串數據,如果要進行字符搜索就要用varchar2類型。

long是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。?

raw(n) n=1 to 2000 可變長二進制數據,在具體定義字段的時候必須指明最大長度n,Oracle 8i用這種格式來保存較小的圖形文件或帶格式的文本文件,如Miceosoft Word文檔。

raw是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。?

long raw 無 可變長二進制數據,最大長度是2GB。Oracle 8i用這種格式來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件。

在同一張表中不能同時有long類型和long raw類型,long raw也是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。?

blob

clob

nclob 無 三種大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件,最大長度是4GB。

LOB有幾種類型,取決于你使用的字節的類型,Oracle 8i實實在在地將這些數據存儲在數據庫內部保存。

可以執行讀取、存儲、寫入等特殊操作。?

bfile 無 在數據庫外部保存的大型二進制對象文件,最大長度是4GB。

這種外部的LOB類型,通過數據庫記錄變化情況,但是數據的具體保存是在數據庫外部進行的。

Oracle 8i可以讀取、查詢BFILE,但是不能寫入。

大小由操作系統決定。?

數據類型是列或存儲過程中的一個屬性。

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

??? 字符數據類型

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

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

??? Oracle推薦使用VARCHAR2

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

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

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

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

????? 數字數據類型

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

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

????? 日期數據類型

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

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

?????? 其它的數據類型

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

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

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

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

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

????? <CLOB>,只能存儲字符數據

??? <NCLOB>,保存本地語言字符集數據

??? <BLOB>??? ,以二進制信息保存數據

????? 可以指定將一個LOB數據保存在Oracle數據庫內,還是指向一個包含次數據的外部文件。

????? LOB可以參與事務。管理LOB中的數據必須通過DBMS_LOB PL/SQL內置軟件包或者OGI接口。

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

??? BFILE

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

????? XML Type

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

????? 用戶自定義數據

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

????? AnyType、AnyData和AnyDataSet

?????? Oracle包括3個新的數據類型,用于定義在現有數據類型之外的數據結構。其中每種數據類型必須用程序單元來定義,以便讓Oracle9i知道如何處理這些類型的特定實現。

??? 類型轉換

??? Oracle會自動將某些數據類型轉換成其他的數據類型,轉換取決于包括該值的SQL語句。

??? 數據轉換還可以通過Oracle的類型轉換函數顯示地進行。

??? 連接與比較

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

??? NULL

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

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

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

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

number(p,s)

p:1~38

s:-84~127

p>0,對s分2種情況:1. s>0

精確到小數點右邊s位,并四舍五入。然后檢驗有效數位是否<=p;如果s>p,小數點右邊至少有s-p個0填充。

2. s<0

精確到小數點左邊s位,并四舍五入。然后檢驗有效數位是否<=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

?

出處:http://www.baanerp.com/post/95.html

?

總結

以上是生活随笔為你收集整理的ORACLE的所有字段类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。