字符串是PL/SQL中常用的數據類型,字符串在PL/SQL中共有三類:
- 定長字符串:字符串右邊用空格填充直到指定長度爲止。CHAR,NCHAR屬於這類
- 變長字符串():指定字符串的最大長度(小於32767),可以存儲小於指定長度的字符串,不會有空格填充發生。VARCHAR2, NVARCHAR2屬於這類
- 字符大對象:能夠存儲高達128TB大小的內容的可變字符串類型。 CLOB, 和NCLOB屬於這類
以N開頭的類型是“national character set”國家字符集數據類型,可以存儲Unicode。
#字符串字面量
用單引號'
包圍的的內容爲字符串字面量
'This is a string literal'
如果需要表達單引號本身,則可以連續寫兩個單引號''
'This isn''t a date'
也可以採用以下形式:
q'[This isn't a date]'
#聲明字符串變量
根據需要可以聲明不同類型,不同(最大)長度的字符串變量
variable1 CHAR(1) := 'Y';
variable2 VARCHAR2(100) := 'Hello World!';
variable3 CLOB;
CHAR
類型可以省略括號裏的最大長度聲明,此時默認爲長度1;VARCHAR2
類型必須要指定最大長度,否則無法通過編譯;CLOB
不需要指定最大長度,長度有數據庫自己確定。
#字符串連接
PL/SQL有兩種方式可以連接字符串
- 內建函數
CONCAT
- 字符串連接操作符
||
CONCAT('Hello ', 'World!');
'Hello ' || 'World!';
CONCAT
與||
的任意一個字符串爲NULL
或空字符串 ''
時,連接操作返回另一個非NULL非空的字符串,如果兩個字符串都爲NULL
或空字符串 ''
,連接操作返回NULL
。