Función DUMP en Oracle

La función DUMP en Oracle te permite encontrar el tipo de datos, la longitud y la representación interna de un valor. Esta función esta englobada en las denominadas funciones de cadena.

Sintaxis

Escribe la siguiente sintaxis para utilizarlo:

DUMP ( expresion [, return_format] [, start_position] [, length] )
  • Expresión: especifica una expresión que se evaluarán. Puede ser una columna o una expresión..
  • return_format: formato de salida.
  • start_position: especifica la posición inicial en la expresión para la cual se debe devolver la representación interna.
  • length: especifica la longitud, desde start_position, en la expresión para la que se debe devolver la representación interna.

Ejemplos

Obtener el tipo del valor

En el siguiente ejemplo comprobamos el tipo de toda la expresión:

SELECT	
    DUMP ('Blog 1') COLUMNA1
FROM 
    dual;

En el restallado observamos lo siguiente:

  • Type=96: esto significa que la expresión es de tipo CHAR.
  • Len=6: nos indica que la longitud de la expresión es 6.
  • 66: se corresponde con la letra B en ASCII.
  • 108: se corresponde con la letra l en ASCII.
  • 49: se corresponde con el numero 1 en ASCII.

Si en lugar de mostrar los caracteres en ASCII quieres mostrar los reales ejecuta la siguiente consulta:

SELECT	
    DUMP ('Blog 1',17) COLUMNA1
FROM 
    dual;

Esta función la puedes usar tambien con campos de una tabla. En el siguiente ejemplo obtenemos el campo nombre de la tabla empleados y el mismo pero usando la función DUMP.

SELECT	
    nombre,
    DUMP (nombre) NOMBRE
FROM 
    empleados;

Ejemplo completo

-- Comprobamos la salida de la sentencia sin opciones
SELECT	
    DUMP ('Blog 1') COLUMNA1
FROM 
    dual;

-- Comprobamos la salida de la sentencia con el formato 17
SELECT	
    DUMP ('Blog 1') COLUMNA1
FROM 
    dual;

-- Creamos la tabla
create table empleados
(
    id_empleado numeric(2,0),
    id_departamento numeric(2,0),
    nombre character varying(50),
    puesto character varying(50),
    fecha_alta date,
    sueldo integer
);

-- Insertamos valores
insert into empleados
       values (1,1,'Miguel Troyano','Analista',to_date('26/09/1986', 'dd/mm/yyyy'),60000);
insert into empleados
       values (2,1,'Ismael Troyano','Analista',to_date('01/01/2001', 'dd/mm/yyyy'),60000);
insert into empleados
        values (3,1,'Jose Troyano','Alta Dirección',to_date('01/01/2001', 'dd/mm/yyyy'),80000);
insert into empleados
        values (4,1,'Pilar Redondo','Alta Dirección',to_date('02/02/2002', 'dd/mm/yyyy'),80000);

-- Comprobamos la salida del comando con el formato 17
SELECT	
    DUMP ('Blog 1') COLUMNA1
FROM 
    dual;

-- Comprobamos la salida del comando utilizando una tabla
SELECT	
    nombre,
    DUMP (nombre) NOMBRE
FROM 
    empleados;

Escribir un comentario