Si aprendes a utilizar correctamente la tabla DUAL en los PL-SQL Packages de Oracle podrás solucionar rápidamente problemas que se presenten al momento desarrollar procesos y funciones en Oracle.
En tus PL-SQL Packages en Oracle la tabla DUAL es una tabla comodín que se crea de forma automática al momento de instalar la Base de Datos Oracle, esta tabla tiene un solo campo y un solo registro. Esta tabla DUAL en tus PL-SQL Packages en Oracle se puede usar para realizar operaciones matemáticas, crear filas virtuales, asignar valores, obtener secuencias, utilizar funciones, etc. Revisemos algunos ejemplos para que entiendas mejor como se debe usar la tabla DUAL en tus PL-SQL Packages en Oracle.
Ejemplo #1: Supone que necesitas realizar una operación matemática y asignar el resultado a una variable, veamos cómo se hace:
/* PL-SQL Packages en Oracle */
Lin_total number;
Begin
Lin_total:= (100000*19)/100 ;
End;
En este ejemplo se muestra la forma tradicional de asignar un resultado a una variable. Veamos ahora el mismo ejemplo pero usando la tabla DUAL:
/* PL-SQL Packages en Oracle */
Begin
Select (100000*19)/100 into lin_total from dual;
End;
En este ejemplo de PL-SQL Packages en Oracle se hace una multiplicación y división y el resultado se asigna en la variable lin_total usando la tabla Dual.
TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”
Ejemplo #2: Supone que necesitas obtener el valor de una secuencia, veamos cómo se hace:
/* PL-SQL Packages en Oracle */
Lin_id_empleado number;
Begin
Lin_id_empleado:= sq_empleado.nextval;
End;
En tus PL-SQL Packages en Oracle la asignación de la forma tradicional para obtener una secuencia no funciona ya que una secuencia es un elemento de la base de datos y se debe obtener con el comando Select. Veamos cómo obtener una secuencia de forma correcta:
/* PL-SQL Packages en Oracle */
Begin
Select sq_empleado.nextval into lin_id_empleado from dual;
End;
En este ejemplo de PL-SQL Packages en Oracle se obtiene correctamente el valor de una secuencia ya que se está haciendo un Select a la tabla dual y se asigna de inmediato el valor nextval obtenido en la variable lin_id_empleado.
Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propios PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.
Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.
Saludos
Roberto Vicencio – Escritor del Reporte:
“Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”
Como puedo verificar cual es el próximo valor de la secuencia de una tabla sin actualizar o incrementar la secuencia usando el nextval?
Hola Felipe, gracias por comunicarte, muy buena tu pregunta, para verificar el valor actual de una secuencia debes usar el atributo CURRVAL de la siguiente forma, para que funcione primero debe ejecutarse un NEXTVAL:
select tu_secuencia.nextval from dual;
resultado: 101
select tu_secuencia.currval from dual;
resultado: 101
PD: Ya obtuviste mi libro-reporte sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo desde el enlace: https://dominatuspackagesen0racle.com/
Saludos
Roberto Vicencio – Para Tu Éxito con Oracle.
Muy bueno el tutorial, mi gran frustración es que quiero saber mucho de Oracle y no sé donde con seguir un manual completo y muy bueno de pl-sql. Gracias
Hola Ronald, gracias por comunicarte y por tu comentario, te recomiendo que para saber mucho de Oracle empieces por parte desde lo básico, intermedio y avanzado, en este blog puedes encontrar mucha información para iniciar, también te recomiendo obtener mi Libro-Reporte sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde el enlace https://dominatuspackagesen0racle.com/, gracias.
Saludos
Roberto Vicencio – Para Tu Éxito con Oracle.
gracias por todo tu contenido!
A nivel de performance, o de “buen gusto” que recomiendas usar? asignacion a variable en Declare o uso de From Dual?
Saludos!
Hola Carlos, gracias por comunicarte, en PL-SQL todas las variables deben ser declaradas en la zona declare, puedes asignarla directamente con := o dentro de un from dual si es que requieres hacer algo mas elaborado, todo depende de los quieras hacer.
PD: Ya pudiste ver mi libro reporte sobre ‘Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos’, si aun no lo tienes en tus manos puedes obtenerlo gratis desde aquí: https://dominatuspackagesen0racle.com/
Saludos
Roberto Vicencio – Para Tu Éxito con Oracle.