PL/SQL數(shù)據(jù)類型及操作符
標(biāo)量(scalar)數(shù)據(jù)類型沒(méi)有內(nèi)部組件,他們大致可分為以下四類:
. number
. character
. date/time
. boolean
表1顯示了數(shù)字?jǐn)?shù)據(jù)類型;表2顯示了字符數(shù)據(jù)類型;表3顯示了日期和布爾數(shù)據(jù)類型。
表1 Scalar Types:Numeric
| Datatype | Range | Subtypes | description |
| BINARY_INTEGER | -214748-2147483647 | NATURAL NATURAL NPOSITIVE POSITIVEN SIGNTYPE |
用于存儲(chǔ)單字節(jié)整數(shù)。 要求存儲(chǔ)長(zhǎng)度低于NUMBER值。 用于限制范圍的子類型(SUBTYPE): NATURAL:用于非負(fù)數(shù) POSITIVE:只用于正數(shù) NATURALN:只用于非負(fù)數(shù)和非NULL值 POSITIVEN:只用于正數(shù),不能用于NULL值 SIGNTYPE:只有值:-1、0或1. |
| NUMBER | 1.0E-130-9.99E125 | DEC DECIMAL DOUBLE PRECISION FLOAT INTEGERIC INT NUMERIC REAL SMALLINT |
存儲(chǔ)數(shù)字值,包括整數(shù)和浮點(diǎn)數(shù)??梢赃x擇精度和刻度方式,語(yǔ)法:
|
| PLS_INTEGER | -2147483647-2147483647 | 與BINARY_INTEGER基本相同,但采用機(jī)器運(yùn)算時(shí),PLS_INTEGER提供更好的性能 。 |
NUMBER 數(shù)字型 能存放整數(shù)值和實(shí)數(shù)值,并且可以定義精度和取值范圍
BINARY_INTEGER 數(shù)字型 可存儲(chǔ)帶符號(hào)整數(shù),為整數(shù)計(jì)算優(yōu)化性能
DEC 數(shù)字型 NUMBER的子類型,小數(shù)
DOUBLE PRECISION 數(shù)字型 NUMBER的子類型,高精度實(shí)數(shù)
INTEGER 數(shù)字型 NUMBER的子類型,整數(shù)
INT 數(shù)字型 NUMBER的子類型,整數(shù)
NUMERIC 數(shù)字型 NUMBER的子類型,與NUMBER等價(jià)
REAL 數(shù)字型 NUMBER的子類型,與NUMBER等價(jià)
SMALLINT 數(shù)字型 NUMBER的子類型,取值范圍比INTEGER小
VARCHAR2 字符型 存放可變長(zhǎng)字符串,有最大長(zhǎng)度
表2 字符數(shù)據(jù)類型
| datatype | rang | subtype | description |
| CHAR | 最大長(zhǎng)度32767字節(jié) | CHARACTER | 存儲(chǔ)定長(zhǎng)字符串,如果長(zhǎng)度沒(méi)有確定,缺省是1 |
| LONG | 最大長(zhǎng)度2147483647字節(jié) | 存儲(chǔ)可變長(zhǎng)度字符串 | |
| RAW | 最大長(zhǎng)度32767字節(jié) | 用于存儲(chǔ)二進(jìn)制數(shù)據(jù)和字節(jié)字符串,當(dāng)在兩個(gè)數(shù)據(jù)庫(kù)之間進(jìn)行傳遞時(shí),RAW數(shù)據(jù)不在字符集之間進(jìn)行轉(zhuǎn)換。 | |
| LONGRAW | 最大長(zhǎng)度2147483647 | 與LONG數(shù)據(jù)類型相似,同樣他也不能在字符集之間進(jìn)行轉(zhuǎn)換。 | |
| ROWID | 18個(gè)字節(jié) | 與數(shù)據(jù)庫(kù)ROWID偽列類型相同,能夠存儲(chǔ)一個(gè)行標(biāo)示符,可以將行標(biāo)示符看作數(shù)據(jù)庫(kù)中每一行的唯一鍵值。 | |
| VARCHAR2 | 最大長(zhǎng)度32767字節(jié) | STRINGVARCHAR | 與VARCHAR數(shù)據(jù)類型相似,存儲(chǔ)可變長(zhǎng)度的字符串。聲明方法與VARCHAR相同 |
CHAR 字符型 定長(zhǎng)字符串
LONG 字符型 變長(zhǎng)字符串,最大長(zhǎng)度可達(dá)32,767
DATE 日期型 以數(shù)據(jù)庫(kù)相同的格式存放日期值
BOOLEAN 布爾型 TRUE OR FALSE
ROWID ROWID 存放數(shù)據(jù)庫(kù)的行號(hào)
表3 DATE和BOOLEAN
| datatype | range | description |
| BOOLEAN | TRUE/FALSE | 存儲(chǔ)邏輯值TRUE或FALSE,無(wú)參數(shù) |
| DATE | 01/01/4712 BC | 存儲(chǔ)固定長(zhǎng)的日期和時(shí)間值,日期值中包含時(shí)間 |
LOB數(shù)據(jù)類型
LOB(大對(duì)象,Large object) 數(shù)據(jù)類型用于存儲(chǔ)類似圖像,聲音這樣的大型數(shù)據(jù)對(duì)象,LOB數(shù)據(jù)對(duì)象可以是二進(jìn)制數(shù)據(jù)也可以是字符數(shù)據(jù),其最大長(zhǎng)度不超過(guò)4G。LOB數(shù)據(jù)類型支持任意訪問(wèn)方式,LONG只支持順序訪問(wèn)方式。LOB存儲(chǔ)在一個(gè)單獨(dú)的位置上,同時(shí)一個(gè)"LOB定位符"(LOB locator)存儲(chǔ)在原始的表中,該定位符是一個(gè)指向?qū)嶋H數(shù)據(jù)的指針。在PL/SQL中操作LOB數(shù)據(jù)對(duì)象使用ORACLE提供的包DBMS_LOB.LOB數(shù)據(jù)類型可分為以下四類:
. BFILE
. BLOB
. CLOB
. NCLOB
操作符
與其他程序設(shè)計(jì)語(yǔ)言相同,PL/SQL有一系列操作符。操作符分為下面幾類:
. 算術(shù)操作符
. 關(guān)系操作符
. 比較操作符
. 邏輯操作符
算術(shù)操作符如表4所示
| operator | operation |
| + | 加 |
| - | 減 |
| / | 除 |
| * | 乘 |
| ** | 乘方 |
關(guān)系操作符主要用于條件判斷語(yǔ)句或用于where子串中,關(guān)系操作符檢查條件和結(jié)果是否為true或false,表5是PL/SQL中的關(guān)系操作符
| operator | operation |
| < | 小于操作符 |
| <= | 小于或等于操作符 |
| > | 大于操作符 |
| >= | 大于或等于操作符 |
| = | 等于操作符 |
| != | 不等于操作符 |
| <> | 不等于操作符 |
| := | 賦值操作符 |
表6 顯示的是比較操作符
| operator | operation |
| IS NULL | 如果操作數(shù)為NULL返回TRUE |
| LIKE | 比較字符串值 |
| BETWEEN | 驗(yàn)證值是否在范圍之內(nèi) |
| IN | 驗(yàn)證操作數(shù)在設(shè)定的一系列值中 |
表7.8顯示的是邏輯操作符
| operator | operation |
| AND | 兩個(gè)條件都必須滿足 |
| OR | 只要滿足兩個(gè)條件中的一個(gè) |
| NOT | 取反 |
相關(guān)文章
Oracle使用insert觸發(fā)器遇到的問(wèn)題及解決
在數(shù)據(jù)庫(kù)管理中,觸發(fā)器是重要的工具,用于實(shí)現(xiàn)自動(dòng)化操作和數(shù)據(jù)完整性維護(hù),本文以一個(gè)實(shí)際案例詳解觸發(fā)器的基本語(yǔ)句和應(yīng)用,在導(dǎo)入個(gè)人信息時(shí),如果已存在該信息且需更新非導(dǎo)入項(xiàng)(如疫情信息),觸發(fā)器通過(guò)比較:new與:old屬性值實(shí)現(xiàn)自動(dòng)同步2024-10-10
oracle10g全文索引自動(dòng)同步語(yǔ)句使用方法
這篇文章主要介紹了oracle10g全文索引自動(dòng)同步語(yǔ)句使用方法,需要的朋友可以參考下2014-03-03
Oracle中命名塊之存儲(chǔ)過(guò)程的詳解及使用方法
這篇文章主要介紹了Oracle中命名塊之存儲(chǔ)過(guò)程的詳解及使用方法的相關(guān)資料,需要的朋友可以參考下2017-05-05
oracle數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出命令解析
這篇文章主要介紹了oracle數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出命令解析,小編覺(jué)得還是比較不錯(cuò)的,需要的朋友可以參考下。2017-10-10
Oracle ORA 07445 evaopn2()+128錯(cuò)誤問(wèn)題的解決方案
這篇文章主要介紹了Oracle ORA 07445 evaopn2()+128錯(cuò)誤問(wèn)題的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
Oracle 臨時(shí)表空間SQL語(yǔ)句的實(shí)現(xiàn)
臨時(shí)表空間用來(lái)管理數(shù)據(jù)庫(kù)排序操作以及用于存儲(chǔ)臨時(shí)表、中間排序結(jié)果等臨時(shí)對(duì)象,本文主要介紹了Oracle 臨時(shí)表空間SQL語(yǔ)句的實(shí)現(xiàn),感興趣的可以了解一下2021-09-09
oracle誤刪數(shù)據(jù)表還原的二種方法(oracle還原)
這篇文章主要介紹了oracle誤刪數(shù)據(jù)表還原的二種方法,大家參考使用吧2014-01-01

