Función LENGTH en Oracle

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;
Obtener la longitud de una cadena literal

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;
Incluir espacios en el cálculo

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;
Comparar longitudes entre dos cadenas

Longitud de una cadena vacía

Devuelve NULL porque una cadena vacía no contiene caracteres.

SELECT
    LENGTH('') AS EMPTY_LENGTH
FROM
    DUAL;
Longitud de una cadena vacía

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;
Calcular la longitud después de concatenar

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;
Uso con TRIM para ignorar espacios

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;
Calcular la longitud de una columna en una tabla

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;
Filtrar por longitud de cadenas

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 🚫


Escribir un comentario