Las sentencias Pre/Post están disponibles en informes y cubos por medio de las propiedades VLDB pero ¿qué son? Es un concepto que poca gente conoce o utiliza pero nos permite ejecutar sentencias directamente en BBDD. Se puede utilizar para insertar en una tabla de BBDD cuando comienza a ejecutarse un cubo o su fecha de finalización entre otras cosas.
¿Cómo accedo a las propiedades VLDB?
Abre el informe o cubo y en el menú superior selecciona «Datos» y a continuación «Propiedades de VLDB…» En la nueva ventana localiza la carpeta «Sentencias Pre/Post» y muestra su contenido. Se mostrarán las diferentes opciones disponibles donde se puede insertar una sql definida por nosotros.
¿Qué significa cada una de las opciones?
La sentencia definida en esta opción se ejecutará al comenzar el informe o cubo. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará al finalizar el informe o cubo (antes del drop en caso de tener tablas temporales). Si el informe o cubo falla o se cancela no se ejecuta esta sentencia. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará antes del primer insert. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará en mitad de toda la ejecución del informe o cubo. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará después del primer insert. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará antes de crear o insertar en una tabla. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará después de crear o insertar en una tabla. Es importante destacar que las cuatro primeras opciones deben ser de una única consulta y la quinta puede contener varias separadas por punto y coma.
La sentencia definida en esta opción se ejecutará al final de la ejecución del cubo o informe, tanto si se ejecuta correctamente o si da error. Es posible definir hasta cinco sentencias.
¿Un ejemplo? Observa los números indicados al final de cada opción del cuadro anterior y localizarlos en el siguiente código para comprobar donde se ejecutaría cada opción.
<1> <2> CREATE TABLE <table name> (<fields' definition>) (COMMIT) <3> INSERT INTO <table name> SELECT <fields list> FROM <tables list> WHERE <joins and filter> (COMMIT) <4> <5> <6> CREATE INDEX <index name> ON <fields list> SELECT <fields list> FROM <tables list> WHERE <joins and filter> <7> DROP TABLE TABLENAME <8>