jueves, 13 de octubre de 2016

Ejemplo 2016-03

Resumen 

Grabar una misma consulta en distintas tablas.

Descripción

Si nos encontramos en la necesidad de grabar una consulta (normalmente un resumen o consolidado) en varias tablas, notamos que se repite la consulta de base de datos y solo cambia una condición. El resultado debe insertarse en distintas tablas a la vez o discriminar la tabla a registrar.

Entonces, podemos emplear una sentencia BULK COLLECT, que recupera de un cursor (recibe como parámetro la condición diferencial) e inserta en la tabla asignada.

Con este ejemplo vamos a tener ahorro en líneas de código. Además, cuando la sentencia se modifica, el cambio sólo se hace una vez.

Configuración
Oracle 11g

lunes, 3 de octubre de 2016

Ejemplo 2016-02

Resumen 

Emplear una vista con parámetros.

Descripción

Se tiene una consulta que es repetida en distintos lugares (este ejemplo asume que las consultas se realizan en paquetes de base de datos). La estructura es igual. La diferencia se da en los campos que se recuperan para mostrar o procesar. 

La consulta en cuestión puede ser compleja: incluir subconsultas, uniones de otras tablas, etc. En el ejemplo se hace un consulta muy sencilla para facilitar la compresión de lo que se quiere hacer. Al crear una vista con la consulta (compleja) nos ahorramos líneas de código en los procedimientos que lo ejecutan. También, será más fácil poder optimizarla.

Para poder parametrizar la vista, se debe crear un paquete que encapsular las variables. Luego, son recuperados al procesar la sentencia.

Configuración
Oracle 11g