PL/SQL - 字符串
-
简述
PL/SQL 中的字符串实际上是一个带有可选大小规范的字符序列。字符可以是数字、字母、空格、特殊字符或所有字符的组合。PL/SQL 提供三种字符串 --
固定长度字符串− 在此类字符串中,程序员在声明字符串时指定长度。字符串右填充空格到指定的长度。
-
可变长度字符串 − 在此类字符串中,指定字符串的最大长度为 32,767,并且不进行填充。
-
大字符对象 (CLOBs) − 这些是可变长度的字符串,最长可达 128 TB。
PL/SQL 字符串可以是变量或文字。字符串文字用引号括起来。例如,要在字符串文字中包含单引号,您需要并排键入两个单引号。例如, -
-
声明字符串变量
Oracle 数据库提供了多种字符串数据类型,例如 CHAR、NCHAR、VARCHAR2、NVARCHAR2、CLOB 和 NCLOB。带有前缀的数据类型'N' 是 'national character set' 数据类型,用于存储 Unicode 字符数据。如果需要声明可变长度字符串,则必须提供该字符串的最大长度。例如,VARCHAR2 数据类型。以下示例说明了声明和使用一些字符串变量 -在 SQL 提示符下执行上述代码时,会产生以下结果 -要声明固定长度的字符串,请使用 CHAR 数据类型。在这里,您不必为固定长度的变量指定最大长度。如果不考虑长度约束,Oracle 数据库会自动使用所需的最大长度。以下两个声明是相同的 - -
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
在 SQL 提示符下执行上述代码时,会产生以下结果 -示例 2
在 SQL 提示符下执行上述代码时,会产生以下结果 -