PL/SQL学习笔记之变量、常量、字面量、字符串

时间:2021-06-18 14:42:14

一:变量

1:变量声明与初始化

variable_name  datatype(约束) [:= | DEFAULT 初始值]

如:

sales number(10, 2);
name varchar2(25);
a integer := 10;
greetings varchar2(20) DEFAULT 'Have a Good Day';

 

2:变量的使用

通过变量名来使用。

 

3:用变量接收SQL语句结果

SELECT 列1,列2... INTO 变量1,变量2... 

 

 

二:常量

 1:常量声明

常量使用CONSTANT关键字声明。它需要一个初始值,并且不允许被改变该值。如:

PI CONSTANT NUMBER := 3.141592654;

2:常量使用

通过常量名使用。

 

 

三:字面量

字面量 即 一个明确的数字,字符,字符串或布尔值

 

 

四:字符串

1:PL/SQL提供了三种类型的字符串:

  • 固定长度字符串:声明字符串时指定长度,不满足长度的由空格填充以达到指定的长度。

  • 变长字符串:最大长度可达32,767。

  • 字符大对象(CLOB):可变长度的字符串,可以达到128兆兆字节。

 

2:类型:主要有  CHAR,NCHAR,VARCHAR2,NVARCHAR2,CLOB和NCLOB  六种。

 

3:字符串连接运算符: ||

str1 || str2  #连接str1和str2

 

4:字符串操作函数

 

1 ASCII(x);
返回字符 x 的 ASCII 值
2 CHR(x);
返回字符 x 的 ASCII 值
3 CONCAT(x, y);
连接字符串x和y,并返回附加的字符串
4 INITCAP(x);
每个单词的首字母x中转换为大写,并返回该字符串
5 INSTR(x, find_string [, start] [, occurrence]);
搜索find_string在x中并返回它出现的位置
6 INSTRB(x); 
返回另一个字符串中字符串的位置,但返回以字节为单位的值
7 LENGTH(x); 
返回x中的字符数
8 LENGTHB(x); 
返回为单字节字符集的字节的字符串的长度
9 LOWER(x); 
在x转换为小写字母,并返回该字符串
10 LPAD(x, width [, pad_string]) ; 
X用空格向左填充,把字符串的总长度达宽字符
11 LTRIM(x [, trim_string]); 
从x的左修剪字符
12 NANVL(x, value); 
如果x匹配NaN的特殊值(非数字)则返回其值,否则返回x
13 NLS_INITCAP(x); 
相同INITCAP函数,但它可以使用不同的排序方法所指定NLSSORT
14 NLS_LOWER(x) ; 
同样的,不同的是它可以使用不同的排序方法所指定NLSSORT LOWER函数
15 NLS_UPPER(x); 
相同,不同之处在于它可以使用不同的排序方法所指定NLSSORT UPPER函数
16 NLSSORT(x); 
改变排序的字符的方法。任何NLS函数之前必须指定该参数;否则,默认的排序被使用
17 NVL(x, value); 
返回如果x为null返回null; 否则返回x
18 NVL2(x, value1, value2); 
如果x不为null返回value1; 如果x为null,则返回value2
19 REPLACE(x, search_string, replace_string); 
搜索x对于SEARCH_STRING并替换使用replace_string它
20 RPAD(x, width [, pad_string]); 
填充x到右侧
21 RTRIM(x [, trim_string]); 
从x右边修剪
22 SOUNDEX(x) ; 
返回包含x的拼音表示形式的字符串
23 SUBSTR(x, start [, length]); 
返回x的一个子开始于由start指定的位置。可选长度为子字符串
24 SUBSTRB(x); 
相同SUBSTR除外的参数均以字节代替字符的单字节字符的系统
25 TRIM([trim_char FROM) x); 
从左侧和右侧修剪x字符
26 UPPER(x); 
x转换为大写字母,并返回该字符串