PL/SQL

PL/SQL 知识量:16 - 57 - 244

6.1 字符处理函数><

单行函数概述- 6.1.1 -

在Oracle中,所谓的单行函数就是返回单一的结果行,查询对象可以是表或视图等,它们可以用在查询列表中、WHERE子句中或者HAVING子句中。这些单行函数非常丰富,主要包括对数值、字符、日期以及NULL字段的处理。

获取字符串长度函数- 6.1.2 -

利用LENGTH函数可以得到指定字符串的长度,它返回数字类型,包含1个字符类型的参数。语法结构如下:

LENGTH(char)

该函数会把空格也算作数据的长度,所以在使用该函数时,尽量把数据的前后空格都去掉再使用,以防造成不必要的麻烦。

去除字符串首尾指定字符函数- 6.1.3 -

利用TRIM函数将去除字符串中指定的前缀或尾随的字符,默认删除空格。其语法结构如下:

TRIM(
[LEADING|TRAILING|BOTH]
[trim_character FROM]
trim_source)

简要说明:

  • LEADING:删除trim_source的前缀字符。

  • TRAILING:删除trim_source的后缀字符。

  • BOTH:删除trim_source的前缀和后缀字符。

  • trim_character:删除指定字符,默认删除空格。

  • trim_source:被操作的字符串。

字符串截取函数- 6.1.4 -

使用SUBSTR函数可以对提供的参数进行截取,返回截取后的字符串。其语法结构如下:

{[SUBSTR]|
[SUBSTRB]|
[SUBSTRC]|
[SUBSTR2]|
[SUBSTR4]}(char,position[,substring_length])

简要说明:

  • SUBSTR:按字符截取,表示以字符为单位。

  • SUBSTRB:按字节截取,表示以字节为单位。

  • SUBSTRC:表示以Unicode字符为单位。

  • SUBSTR2:表示以UCS2代码点为单位。

  • SUBSTR4:表示以UCS4代码点为单位。

  • char:参数,为原始字符串。

  • position:要截取字符串的开始位置。初始值为1,如果该值为负数,则表示从char的右边算起。

  • substring_length:截取的长度。

SUBSTR函数并不能改变原数据的长短,而是对原数据进行操作后返回操作结果,通常可以把该结果赋值给其他变量。

示例:

SQL> select name from people where id=4;

NAME
----------
Susan

SQL> select substr(name,1,3) from people where id=4;

SUBSTR(NAME,1,3)
----------------
Sus

字符串连接函数- 6.1.5 -

字符串连接函数CONCAT的功能和截取函数相反,它能把提供的两个参数连接起来,并返回连接后的字符串。其语法结构如下:

CONCAT(char1,char2)

该函数可以针对具体的字符串操作,也可以针对某列操作,具体的字符串和数据列进行连接也是被允许的。

要想进行连接操作,也可以利用连接符“||”来实现。该操作同样不会改变原始数据,只是返回操作后的字符串。

示例:

SQL> select name,age from people;

NAME        AGE
---------- ----
Bob          25
Jeff         27
Jan          32
Susan        19
Tom          29
Lucy         29
Tomas        32

7 rows selected


SQL> select concat(name,age) from people;

CONCAT(NAME,AGE)
--------------------------------------------------
Bob25
Jeff27
Jan32
Susan19
Tom29
Lucy29
Tomas32

7 rows selected

小写字母转大写函数- 6.1.6 -

利用UPPER函数可以将参数中的小写字母全部转成大写字母,参数可以是字符或字符串,返回转换后的字符串。语法结构如下:

UPPER(char)

示例:

SQL> select name from people where id=4;

NAME
----------
Susan

SQL> select upper(name) from people where id=4;

UPPER(NAME)
-----------
SUSAN

大写字母转小写函数- 6.1.7 -

LOWER函数的功能与UPPER函数相反,它可以把参数中的大写字母全部转成小写字母输出。语法结构如下:

LOWER (char)

示例:

SQL> select name from people where id=4;

NAME
----------
Susan

SQL> select lower(name) from people where id=4;

LOWER(NAME)
-----------
susan

首字母转大写函数- 6.1.8 -

字符串函数INITCAP的作用是将字符串中每个单词的首字母大写,其他字母小写。单词由空格、标点符号限制。

示例:

SQL> select * from books;

 ID NAME        PRICE
--- ---------- ------
  1 SQL            50
  2 MySQL          32
  3 CSS            50
  4 Java       
  5 JavaScript 
  6 Python         32

6 rows selected


SQL> select id,initcap(name),price from books;

 ID INITCAP(NAME)  PRICE
--- ------------- ------
  1 Sql               50
  2 Mysql             32
  3 Css               50
  4 Java          
  5 Javascript    
  6 Python            32

6 rows selected

检索字符串函数- 6.1.9 -

利用INSTR函数可以在一个字符串中检索另一个给定字符串出现的位置,也可以作为判定原字符串是否包含指定字符串的标准,返回结果是一个整数。其语法结构如下:

{[INSTR]|
[INSTRB]|
[INSTRC]|
[INSTR2]|
[INSTR4]}(string,substring[,position[,occurrence]])

简要说明:

  • INSTR:表示检索某字符串在另一个字符串中出现的位置,以字符为单位。

  • INSTRB:表示作用在字符串中的字节数据,它返回的是字节的位置,而不是字符的位置,也就是说,它是以字节为单位的。

  • INSTRC:表示以Unicode字符为单位。

  • INSTR2:表示以UCS2代码点为单位。

  • INSTR4:表示以UCS4代码点为单位。

  • string:被检索的字符串。

  • substring:检索字符串。

  • position:检索的开始位置,默认值为1,表示从字符串左边开始检索;如果值为负数,则表示从字符串的右边位置开始检索。

  • occurrence:substring第几次出现,默认值是1。

示例:

SQL> select name from people where id=4;

NAME
----------
Susan

SQL> select instr(name,'a') from people where id=4;

INSTR(NAME,'A')
---------------
              4