Oracle中Binary_Integer與Pls_Integer 的區別


Binary_Integer 與 Pls_Integer 都是整型型. Binary_Integer值計算是由Oracle來行,不會出溢出,但是行速度慢,因它是由Oracle模擬執行。Pls_Integer行是由硬件即直接由CPU來運算,因而會出溢出,但其行速度前者快多。

一、概述

  在ORACLE8中定了:量(SCALAR)、合(COMPOSITE)、引用(REFERENCE)和LOB四數據型,下面詳細的特性。

  二、(SCALAR)

  合法的型與數據的列所使用的型相同,此外它有一些展。它又分七個:數字、字符、行、日期、行標識、布和可信。

  數字,它有三基本--NUMBERPLS_INTEGERBINARY_INTENERNUMBER可以描述整數或數,而PLS_INTEGERBINARY_INTENER只能描述整數。

  NUMBER,是以十制格式行存的,它便於存,但是在算上,系會自的將它轉換行運算的。它的定方式是NUMBER(PS)P是精度,最大38位,S是刻度范,可在-84...127。例如:NUMBER(52)可以用來存表示-999.99...999.99的數PS可以在定是省略,例如:NUMBER(5)NUMBER;

  BINARY_INTENER用來描述不存在數據中,但是需要用來算的符號的整數。它以2補碼制形式表述。循環計數器常使用這種類型。

  PLS_INTEGERBINARY_INTENER唯一區是在算當中生溢出BINARY_INTENER型的量會被自指派一個NUMBER型而不會出PLS_INTEGER型的量將會錯誤

  字符,包括CHARVARCHAR2(VARCHAR)LONGNCHARNVARCHAR2種類型。

  CHAR,描述定的字符串,如果實際值度,系將以空格填充。它的聲明方式如下CHAR(L)L字符串度,缺省1,作為變量最大32767個字符,作數據存ORACLE8中最大2000

  VARCHAR2(VARCHAR),描述變長字符串。它的聲明方式如下VARCHAR2(L)L字符串度,沒有缺省,作為變量最大32767個字,作數據存ORACLE8中最大4000。在多字節語境中,實際的字符個數可能小於L,例如:當中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK),一個VARCHAR2(200)的數據列可以保存200個英文字符或者100字字符。

  LONG,在數據中可以用來保存高達2G的數據,作為變量,可以表示一個最大32760的可字符串。

  NCHARNVARCHAR2,國家字符集,與NLS指定的言集密切相,使用方法和CHARVARCHAR2相同。

  行,包括RAWLONG RAW種類型。用來存制數據,不會在字符集間轉換

  RAW似於CHAR,聲明方式RAW(L)L為長度,以字節為單位,作數據列最大2000,作為變量最大32767

  LONG RAW似於LONG,作數據列最大存2G的數據,作為變量最大32760

  日期,只有一種類--DATE,用來存儲時間信息,站用7個字(從世到秒)絕對沒有千年蟲問題

  行標識,只有一種類--ROWID,用來存標識,可以利用ROWIDTOCHAR函數來將行標識轉換字符。

  布,只有一種類--BOOLEAN僅僅可以表示TRUEFALSE或者NULL

  可信,只有一種類--MLSLABEL,可以在TRUSTED ORACLE中用來保存可變長度的二標簽。在ORACLE中,只能存NULL

三、(COMPOSITE)

  型是經過預的,利用型可以衍生出一些型。主要有記錄、表。

  記錄,可以看作是一組標量的構,它的聲明方式如下:

  TYPE record_type_name IS RECORD

  ( filed1 type1 [NOT NULL] [:=expr1]

  .......

  filedn typen [NOT NULL] [:=exprn] )

  其中,record_type_name是記錄類型的名字。(是不是看着象CREATE TABLE?......)引用量,記錄只是TYPE,不是VARIABLE。

  表,不是物理存數據的表,在里是一種變型,也稱PL/SQL表,它似於C言中的數,在理方式上也相似。它的聲明方式如下:

  TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER;

  其中,table_type_name型的名字,scalar_type是一種標型的型聲明。引用也必量。表和數不同,表有兩列,KEYVALUEKEY就是定義時聲明的BINARY_INTENERVALUE就是定義時聲明的scalar_type

  除了記錄和表之外,型、集合(嵌套表和VARRAYS)型,些將專門講解。

  四、引用(REFERENCE)

  在PL/SQL8.0之前,只有一種類--REF CURSOR,也就是游。它的定義較為簡單

  CURSOR cursor_name IS select .....from.....;

  在PL/SQL8.0之后,引入了REF型,它指向一個象。這種類型將解。(等我弄明白再,免得在高人面前......)

五、LOB

  LOB量主要是用來存大量數據的數據字段,最大可以存4G的內容(這么大,存VCD?,浪!)。主要有:

  CLOB:和ORACLE7中的LONG型相似,存儲單字符數據。(用來存中文喔。。。)

  NCLOB:用來存多字字符數據。(例如:存《傲江湖》就挺好)

  BLOB:和LONG RAW相似,用來存構的二制數據。

  BFILE:它用來允ORACLE數據外存的大型二制文本行只形式的訪問

  六、其他

  其在完成對標量的理解之后,基本上可以C/S模式下的常數據庫應用所需了,后說實話,我玩了5ORACLE,都很少用到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM