<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    oracle 數據類型(轉載)

    Posted on 2011-12-01 17:13 瘋狂 閱讀(731) 評論(0)  編輯  收藏 所屬分類: database

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

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

        字符數據類型

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

        VARCHAR2存儲可變長度的字符串。雖然也必須指定一個VARCHAR2數據變量的長度,但是這個長度是指對該變量賦值的的最大長度而非實際賦值長度。不需要用空格填充。最多可設置為4000個字符。

        因為VARCHAR2數據類型只存儲為該列所賦的字符(不加空格),所以VARCHAR2需要的存儲空間比CHAR數據類型要小。

        Oracle推薦使用VARCHAR2

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

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

        LONG LONG數據類型可以存放2GB的字符數據,它是從早期版本中繼承來的?,F在如果想存儲大容量的數據,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

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

        。CLOB,只能存儲字符數據

        。NCLOB,保存本地語言字符集數據

        。BLOB,以二進制信息保存數據

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

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

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

        BFILE

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

        XMLType

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

        用戶自定義數據

        從Oracle8以后,用戶可以定義自己的復雜數據類型,它們由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值,那么必須對行的所有列都要賦值。這實際上也取消了某列不需要值的可能性,同時對它賦的值也很容易產生誤解。這種情況則可能誤導終端用戶,并且導致累計操作的錯誤結果。
    轉自:http://www.cnblogs.com/cxd4321/archive/2008/04/14/1153201.html

    主站蜘蛛池模板: 国产在线国偷精品产拍免费| 免费播放一区二区三区| 久久影视国产亚洲| 免费日本一区二区| 亚洲欧美一区二区三区日产| 亚洲五月午夜免费在线视频| 亚洲AV色无码乱码在线观看| 免费电视剧在线观看| 亚洲性一级理论片在线观看| 国产zzjjzzjj视频全免费| 中文在线免费观看| 亚洲中文字幕无码av| 久久这里只有精品国产免费10| 亚洲视频在线观看不卡| 拔擦拔擦8x华人免费久久| 一个人看的www免费视频在线观看| 爱情岛论坛网亚洲品质自拍| 3d动漫精品啪啪一区二区免费| 亚洲视频免费在线观看| 国产伦精品一区二区三区免费下载| 亚洲日韩在线中文字幕综合| 亚洲va在线va天堂va四虎| 国产又长又粗又爽免费视频| 免费激情网站国产高清第一页| 亚洲精品国产综合久久一线| h片在线免费观看| va天堂va亚洲va影视中文字幕| 成人免费无遮挡无码黄漫视频| 亚洲人成色99999在线观看| 久久国产亚洲电影天堂| 亚洲国产精品人人做人人爽| 青青青国产在线观看免费网站| 久久亚洲中文无码咪咪爱| 亚洲女人被黑人巨大进入| 午夜小视频免费观看| 最近免费中文字幕mv在线电影| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲国产精品久久久久秋霞小| 国产一级高清视频免费看| 免费精品国偷自产在线在线| 免费在线观看一级片|