PL/SQL數(shù)據(jù)類型及操作符
標量(scalar)數(shù)據(jù)類型沒有內(nèi)部組件,他們大致可分為以下四類:
. number
. character
. date/time
. boolean
表1顯示了數(shù)字數(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 |
用于存儲單字節(jié)整數(shù)。 要求存儲長度低于NUMBER值。 用于限制范圍的子類型(SUBTYPE): NATURAL:用于非負數(shù) POSITIVE:只用于正數(shù) NATURALN:只用于非負數(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 |
存儲數(shù)字值,包括整數(shù)和浮點數(shù)??梢赃x擇精度和刻度方式,語法:
|
PLS_INTEGER | -2147483647-2147483647 | 與BINARY_INTEGER基本相同,但采用機器運算時,PLS_INTEGER提供更好的性能 。 |
NUMBER 數(shù)字型 能存放整數(shù)值和實數(shù)值,并且可以定義精度和取值范圍
BINARY_INTEGER 數(shù)字型 可存儲帶符號整數(shù),為整數(shù)計算優(yōu)化性能
DEC 數(shù)字型 NUMBER的子類型,小數(shù)
DOUBLE PRECISION 數(shù)字型 NUMBER的子類型,高精度實數(shù)
INTEGER 數(shù)字型 NUMBER的子類型,整數(shù)
INT 數(shù)字型 NUMBER的子類型,整數(shù)
NUMERIC 數(shù)字型 NUMBER的子類型,與NUMBER等價
REAL 數(shù)字型 NUMBER的子類型,與NUMBER等價
SMALLINT 數(shù)字型 NUMBER的子類型,取值范圍比INTEGER小
VARCHAR2 字符型 存放可變長字符串,有最大長度
表2 字符數(shù)據(jù)類型
datatype | rang | subtype | description |
CHAR | 最大長度32767字節(jié) | CHARACTER | 存儲定長字符串,如果長度沒有確定,缺省是1 |
LONG | 最大長度2147483647字節(jié) | 存儲可變長度字符串 | |
RAW | 最大長度32767字節(jié) | 用于存儲二進制數(shù)據(jù)和字節(jié)字符串,當在兩個數(shù)據(jù)庫之間進行傳遞時,RAW數(shù)據(jù)不在字符集之間進行轉(zhuǎn)換。 | |
LONGRAW | 最大長度2147483647 | 與LONG數(shù)據(jù)類型相似,同樣他也不能在字符集之間進行轉(zhuǎn)換。 | |
ROWID | 18個字節(jié) | 與數(shù)據(jù)庫ROWID偽列類型相同,能夠存儲一個行標示符,可以將行標示符看作數(shù)據(jù)庫中每一行的唯一鍵值。 | |
VARCHAR2 | 最大長度32767字節(jié) | STRINGVARCHAR | 與VARCHAR數(shù)據(jù)類型相似,存儲可變長度的字符串。聲明方法與VARCHAR相同 |
CHAR 字符型 定長字符串
LONG 字符型 變長字符串,最大長度可達32,767
DATE 日期型 以數(shù)據(jù)庫相同的格式存放日期值
BOOLEAN 布爾型 TRUE OR FALSE
ROWID ROWID 存放數(shù)據(jù)庫的行號
表3 DATE和BOOLEAN
datatype | range | description |
BOOLEAN | TRUE/FALSE | 存儲邏輯值TRUE或FALSE,無參數(shù) |
DATE | 01/01/4712 BC | 存儲固定長的日期和時間值,日期值中包含時間 |
LOB數(shù)據(jù)類型
LOB(大對象,Large object) 數(shù)據(jù)類型用于存儲類似圖像,聲音這樣的大型數(shù)據(jù)對象,LOB數(shù)據(jù)對象可以是二進制數(shù)據(jù)也可以是字符數(shù)據(jù),其最大長度不超過4G。LOB數(shù)據(jù)類型支持任意訪問方式,LONG只支持順序訪問方式。LOB存儲在一個單獨的位置上,同時一個"LOB定位符"(LOB locator)存儲在原始的表中,該定位符是一個指向?qū)嶋H數(shù)據(jù)的指針。在PL/SQL中操作LOB數(shù)據(jù)對象使用ORACLE提供的包DBMS_LOB.LOB數(shù)據(jù)類型可分為以下四類:
. BFILE
. BLOB
. CLOB
. NCLOB
操作符
與其他程序設(shè)計語言相同,PL/SQL有一系列操作符。操作符分為下面幾類:
. 算術(shù)操作符
. 關(guān)系操作符
. 比較操作符
. 邏輯操作符
算術(shù)操作符如表4所示
operator | operation |
+ | 加 |
- | 減 |
/ | 除 |
* | 乘 |
** | 乘方 |
關(guān)系操作符主要用于條件判斷語句或用于where子串中,關(guān)系操作符檢查條件和結(jié)果是否為true或false,表5是PL/SQL中的關(guān)系操作符
operator | operation |
< | 小于操作符 |
<= | 小于或等于操作符 |
> | 大于操作符 |
>= | 大于或等于操作符 |
= | 等于操作符 |
!= | 不等于操作符 |
<> | 不等于操作符 |
:= | 賦值操作符 |
表6 顯示的是比較操作符
operator | operation |
IS NULL | 如果操作數(shù)為NULL返回TRUE |
LIKE | 比較字符串值 |
BETWEEN | 驗證值是否在范圍之內(nèi) |
IN | 驗證操作數(shù)在設(shè)定的一系列值中 |
表7.8顯示的是邏輯操作符
operator | operation |
AND | 兩個條件都必須滿足 |
OR | 只要滿足兩個條件中的一個 |
NOT | 取反 |
相關(guān)文章
向Oracle數(shù)據(jù)庫的CLOB屬性插入數(shù)據(jù)報字符串過長錯誤
在項目中向數(shù)據(jù)庫的CLOB屬性插入一段篇文章(1000~2000)字就會報一個字符串過長的錯誤,有類似情況的朋友可以參考下2014-08-08Oracle中簡單查詢、限定查詢、數(shù)據(jù)排序SQL語句范例和詳細注解
這篇文章主要介紹了Oracle中簡單查詢、限定查詢、數(shù)據(jù)排序SQL語句范例和詳細注解,對查詢語法一并做了介紹,需要的朋友可以參考下2014-07-07Oracle數(shù)據(jù)庫刪除表空間后磁盤空間不釋放的問題及解決
這篇文章主要介紹了Oracle數(shù)據(jù)庫刪除表空間后磁盤空間不釋放的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Oracle查看表結(jié)構(gòu)的幾種方法示例代碼
本文通過示例代碼給大家介紹了oracle查看表結(jié)構(gòu)的幾種方式,感興趣的朋友參考下吧2017-07-07Oracle賬戶被鎖錯誤:the?account?is?locked解決方法
the?account?is?locked意思是賬戶被鎖定了,這種情況需要大家去解鎖,這篇文章主要給大家介紹了關(guān)于Oracle賬戶被鎖錯誤:the?account?is?locked的解決方法,需要的朋友可以參考下2023-12-12解決Oracle?DISTINCT?報錯?inconsistent?datatypes:?expected?
這篇文章主要介紹了Oracle DISTINCT報錯inconsistent datatypes:expected-got CLOB(數(shù)據(jù)類型不一致:?應(yīng)為-,但卻獲得?CLOB),本文給大家分享三種解決方案,需要的朋友可以參考下2023-07-07