PL/SQL 字符串函数和运算符
PL/SQL 提供连接运算符 (||)用于连接两个字符串。下表提供了 PL/SQL 提供的字符串函数 -
序号 |
功能和目的 |
1 |
ASCII(x);
返回字符 x 的 ASCII 值。
|
2 |
CHR(x);
返回 ASCII 值为 x 的字符。
|
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) ;
与 LOWER 函数相同,但它可以使用 NLSSORT 指定的不同排序方法。
|
15 |
NLS_UPPER(x);
与 UPPER 函数相同,只是它可以使用 NLSSORT 指定的不同排序方法。
|
16 |
NLSSORT(x);
更改字符排序方法。必须在任何 NLS 函数之前指定;否则,将使用默认排序。
|
17 |
NVL(x, value);
返回值如果 x一片空白; 否则,返回 x。
|
18 |
NVL2(x, value1, value2);
如果 x 不为空,则返回 value1;如果 x 为空,则返回 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 中的字母转换为大写并返回该字符串。
|
现在让我们通过几个例子来理解这个概念 -
示例 1
DECLARE
greetings varchar2(11) := 'hello world';
BEGIN
dbms_output.put_line(UPPER(greetings));
dbms_output.put_line(LOWER(greetings));
dbms_output.put_line(INITCAP(greetings));
/* retrieve the first character in the string */
dbms_output.put_line ( SUBSTR (greetings, 1, 1));
/* retrieve the last character in the string */
dbms_output.put_line ( SUBSTR (greetings, -1, 1));
/* retrieve five characters,
starting from the seventh position. */
dbms_output.put_line ( SUBSTR (greetings, 7, 5));
/* retrieve the remainder of the string,
starting from the second position. */
dbms_output.put_line ( SUBSTR (greetings, 2));
/* find the location of the first "e" */
dbms_output.put_line ( INSTR (greetings, 'e'));
END;
/
在 SQL 提示符下执行上述代码时,会产生以下结果 -
HELLO WORLD
hello world
Hello World
h
d
World
ello World
2
PL/SQL procedure successfully completed.
示例 2
DECLARE
greetings varchar2(30) := '......Hello World.....';
BEGIN
dbms_output.put_line(RTRIM(greetings,'.'));
dbms_output.put_line(LTRIM(greetings, '.'));
dbms_output.put_line(TRIM( '.' from greetings));
END;
/
在 SQL 提示符下执行上述代码时,会产生以下结果 -
......Hello World
Hello World.....
Hello World
PL/SQL procedure successfully completed.