本文首次创作于 2025-04-03,最后更新于 2025-05-23,距离上次更新已经过了 13 天,文章内容可能已经过时。

Oracle 中的 LENGTH 函数详解

LENGTH 是 Oracle 数据库中用于获取字符串长度的函数,它返回字符串中的字符数。

基本语法

 LENGTH(string)

参数说明

  • string: 要计算长度的字符串表达式,可以是字符串常量、列名或变量

使用示例

1. 基本用法

 SELECT LENGTH('Oracle数据库') FROM dual;
 -- 结果: 8 (中文字符每个算1个字符)

2. 结合表列使用

 SELECT employee_name, LENGTH(employee_name) AS name_length
 FROM employees;

3. 在 WHERE 子句中使用

 SELECT * FROM products
 WHERE LENGTH(product_name) > 20;

4. 与其他函数结合使用

 SELECT SUBSTR(description, 1, LENGTH(description)/2) AS half_description
 FROM product_details;

特殊注意事项

  1. LENGTH 函数计算的是字符数,不是字节数

  2. 对于空字符串(''),LENGTH 返回 NULL

  3. 对于 NULL 值,LENGTH 返回 NULL

与 LENGTHB 的区别

Oracle 还提供了 LENGTHB 函数,它按字节而不是字符计算长度:

SELECT LENGTH('甲骨文') FROM dual;    -- 结果: 3 (字符数)
SELECT LENGTHB('甲骨文') FROM dual;   -- 结果可能是 6 或 9 (取决于字符编码,字节数)

处理 NULL 值

如果需要处理 NULL 值,可以使用 NVL 函数:

SELECT LENGTH(NVL(column_name, '')) FROM table_name;

实际应用场景

  1. 验证输入数据的长度是否符合要求

  2. 截取字符串时确定截取位置

  3. 数据清洗时识别异常长度的记录

  4. 格式化输出时计算填充空格的数量

LENGTH 函数是 Oracle SQL 中处理字符串时最基础也最常用的函数之一,经常与 SUBSTR、INSTR 等字符串函数配合使用。