La función LENGTH en Oracle es una herramienta clave para trabajar con cadenas de texto en bases de datos. Permite calcular la cantidad exacta de caracteres que contiene una expresión o el valor de un campo, incluyendo espacios en blanco. Esto resulta útil para tareas como validar datos, analizar cadenas o incluso optimizar consultas.
Primero, veremos la sintaxis básica para que entiendas cómo utilizarla correctamente. Después, exploraremos ejemplos prácticos para que puedas aplicar esta función en diferentes escenarios dentro de tus proyectos con Oracle.
Además, es importante mencionar que LENGTH evalúa el número de caracteres según el conjunto de caracteres definido en tu base de datos, algo a tener en cuenta en contextos multilingües o cuando trabajas con caracteres especiales.
¿Quieres aprovechar todo su potencial? La combinación de LENGTH con otras funciones como SUBSTR o TRIM amplía enormemente sus posibilidades. En los siguientes apartados, verás cómo hacerlo.
Para más información, puedes consultar la documentación oficial de ORACLE.
Versión
Este artículo ha sido redactado utilizando la versión Oracle Database 23ai para garantizar compatibilidad y precisión en los ejemplos presentados.
Sintaxis
La sintaxis para utilizar la función LENGTH en Oracle es la siguiente:
LENGTH(expresion);
- LENGTH: nombre de la función.
- expresion: campo o expresión donde debe buscar la subcadena.
La función LENGTH en Oracle permite calcular la longitud de datos pertenecientes a los tipos CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
y NCLOB
. Además, es compatible con cualquier otro tipo de dato que Oracle pueda convertir automáticamente a una cadena de texto, lo que la hace flexible para diversas aplicaciones en el manejo de datos.
Ejemplos
Obtener la longitud de una cadena literal
En este ejemplo, calculamos cuántos caracteres contiene la expresión: «¿Cuántos caracteres tendrá esta cadena?».
SELECT LENGTH('¿Cuántos caracteres tendrá esta cadena?') LONGITUD FROM DUAL;

Incluir espacios en el cálculo
Devuelve 8
porque los espacios al inicio y al final de la cadena también se cuentan.
SELECT LENGTH(' Miguel Troyano ') AS LENGTH_CON_ESPACIOS FROM DUAL;

Comparar longitudes entre dos cadenas
Calcula y compara las longitudes de dos cadenas, devolviendo también la diferencia.
SELECT LENGTH('Oracle') AS LENGTH_UNO, LENGTH('PostgreSQL') AS LENGTH_DOS, LENGTH('Oracle') - LENGTH('PostgreSQL') AS LENGTH_DIFERENCIA FROM DUAL;

Longitud de una cadena vacía
Devuelve NULL
porque una cadena vacía no contiene caracteres.
SELECT LENGTH('') AS EMPTY_LENGTH FROM DUAL;

Calcular la longitud después de concatenar
Devuelve 15
, ya que concatena las cadenas con un espacio intermedio.
SELECT LENGTH('Oracle' || ' ' || 'PostgreSQL') AS CONCATENADO_LENGTH FROM DUAL;

Uso con TRIM para ignorar espacios
Devuelve 6
porque elimina los espacios al inicio y al final antes de calcular la longitud.
SELECT LENGTH(TRIM(' Miguel Troyano ')) AS SINESPACIOS_LENGTH FROM DUAL;

Calcular la longitud de una columna en una tabla
En el siguiente ejemplo, calculamos la cantidad de caracteres presentes en el campo nombre
de la tabla empleados
:
SELECT nombre, LENGTH(nombre) LONGITUD FROM empleados;

Filtrar por longitud de cadenas
Devuelve los nombres de los empleados cuya longitud es mayor a 13 caracteres.
SELECT NOMBRE FROM EMPLEADOS WHERE LENGTH(NOMBRE) > 13;

Ejemplo completo
🚫 Acceso restringido
Para visualizar el código de ejemplo, es necesario iniciar sesión.
Puedes hacerlo sin registrarte desde el lateral derecho o los comentarios, utilizando tu cuenta de Microsoft o Google.
Fin acceso restringido 🚫