sábado, 17 de junio de 2023

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Hay veces que nos piden queries muy complejas y resulta difícil dar con la relación ideal entre tablas para sacar nuestra querie, pero existen recursos gráficos que nos permiten visualizar las tablas de las que queremos sacar la información y sacar sus relaciones entre ellas, (aquí con SQL Server) una vez establecidas estas relaciones la herramienta nos propone la query automáticamente.

En este caso utilizaremos TOAD de Oracle, en este caso desde Database elegimos Report y la opción ER Diagram.

 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Aparece una cruz azul que pulsamos para elegir que tablas queremos de la base de datos, si queremos todas las relacionadas con ella marcamos el check de arriba (auto select), pero si queremos elegirlas una a una lo desmarcamos.

 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Elegidas las tablas pulsamos ok, y nos muestra el esquema ER. 

 

Esquema ER TOAD

Si queremos sacar la query correspondiente a nuestro esquema, pulsamos sobre el botón SQL

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual


 Se nos abrirá una pestaña inferior con la query

 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

También podemos abrir una pestaña nueva para tener un esquema diferente

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual


Para elegir las columnas de la query marcamos la tabla del panel derecho y hacemos doble clic sobre ella, al marcar las columnas, se nos van escribiendo en la query

 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

También podemos arrastrar y soltar la tabla desde el panel derecho y elegir las columnas (si tiene muchas las vamos a ver pequeñas) 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Para verlas grandes podemos pulsar sobre la lupa y elegir 100%

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual


Si no encontramos las tablas del panel derecho, podemos sacarlas con View -> object palette.

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Una vez tenemos abierto nuestro esquema ER podemos modificarlo y se irá cambiando la query, podemos pinchar y arrastrar desde un campo de una tabla hasta otro para crear relaciones INNER JOIN 

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

si pulsamos con el botón derecho del ratón sobre el panel podemos modificar nuestra Where, having, añadir objetos, etc.

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual

Por ejemplo si pulsamos sobre Where conditions, se abrirá una pantalla bastante completa para modificar nuestra condición WHERE.

Generar consultas complejas de Oracle con TOAD, a partir de un esquema visual



sábado, 3 de junio de 2023

Poner página n de m al comienzo de un informe JasperReports

En muchas ocasiones es necesario poner en un informe en una esquina, algo del estilo “Página n de m” siendo n la página actual y m el número total de página del informe.

En JasperReports ambos números se muestran utilizando una misma variable, basta con cambiar una de sus propiedades. 

Existe en JasperReports una variable llamada PAGE_NUMBER en el panel de la parte inferior izquierda llamado Outline

Poner página n de m al comienzo de un informe JasperReports


Debemos arrastrar y soltar esta variable dos veces sobre  nuestro informe. Una vez hecho esto basta con ir al panel de propiedades de la caja arrastrada (text_field) y sobre la pestaña  text field, ponemos el campo Evaluation time Now en la que queremos que muestre la página actual y Report en la que queremos que muestre las páginas totales.

 

Poner página n de m al comienzo de un informe JasperReports

En el informe nos quedará así:

"Página  " + $V{PAGE_NUMBER} + " de " $V{PAGE_NUMBER}

Al ejecutarlo veremos algo similar a esto:

Página 4 de 30


sábado, 20 de mayo de 2023

Depurar un paquete de Oracle con TOAD

Para depurar un paquete de base de datos con TOAD primero abrimos el buscador de objetos de la base de datos con Database-> Schema Browser

 

Depurar un paquete de Oracle con TOAD

Elegimos paquetes (packages) 

 

Depurar un paquete de Oracle con TOAD



Y elegimos el paquete y procedimiento a ejecutar

Depurar un paquete de Oracle con TOAD


Situados sobre el paquete a depura, con el botón derecho del ratón pulsamos sobre el procedimiento y elegimos Compile-> Compile with Debug


Depurar un paquete de Oracle con TOAD
Nos sale una pantalla en la que elegimos la primera opción Refresh Items One by One

Depurar un paquete de Oracle con TOAD

Hecho esto nos colocamos sobre el procedimiento o función a depurar y hacemos doble click sobre él para abrirlo en el editor


Ahora  sobre el editor podemos colocarnos sobre una línea y con el botón derecho del ratón elegimos Debug-> Set Breakpoint para establecer sobre el código los puntos de ruptura que deseemos.

 

Depurar un paquete de Oracle con TOAD



Para comenzar la depuración pulsamos sobre el botón con el triángulo verde que pone SQL

Depurar un paquete de Oracle con TOAD




Y le decimos que si a los mensajes que nos salgan hasta llegar a la pantalla para rellenar las variables. Una vez en esta pantalla le ponemos a cada variable el valor con el que vayamos a depurar nuestro código.

 

Depurar un paquete de Oracle con TOAD


Y pulsamos Ok,  ahora para depurar debemos ir pulsando sobre los botones Step Over, trace Into, etc según deseemos.

 

Depurar un paquete de Oracle con TOAD


El código se irá ejecutando paso a paso.   Y podremos ver los valores que van tomando las variables y donde están nuestros posibles errores.  Podemos terminar la depuración con el botón Terminate Execution.


sábado, 6 de mayo de 2023

Generar Scripts de Base de Datos desde SQL Developer

Hay veces que necesitamos genera un script de Base de datos para hacer alguna tarea. Para ello no es necesario teclear todo el script, sobre todo si se trata de cientos o miles de líneas y además podemos cometer errores. Suele ser más efectivo que lo genere la propia base de datos desde SQL Developer. Para ello, basta con generar la query que necesitemos y una vez hecha, podemos generar un script con sus resultados. Por ejemplo en este caso vamos a genera cientos o miles de instrucciones insert a partir de un simple SELECT * FROM NOMBRE_TABLA.

Para generar scripts desde SQL Developer, sobre las tablas, pulsamos Botón derecho de ratón y Exportar

 

Generar Scripts de Base de Datos desde SQL Developer

Definimos el archivo de destino y pulsamos siguiente.

 

Generar Scripts de Base de Datos desde SQL Developer

Si deseamos sólo un número determinado de registros y no la tabla entera, podemos definir un WHERE

 

Generar Scripts de Base de Datos desde SQL Developer

Pulsamos siguiente

 

Generar Scripts de Base de Datos desde SQL Developer

Y pulsamos terminar

 

Generar Scripts de Base de Datos desde SQL Developer

Al final se genera el DDL en pantalla

 

Generar Scripts de Base de Datos desde SQL Developer


O si lo deseamos, también podemos descargarlo en un archivo


Generar Scripts de Base de Datos desde SQL Developer



sábado, 22 de abril de 2023

Pasar parámetros de un Informe principal a un informe secundario (subreport) con JasperReports

Hay veces que si tenemos un informe complejo sale más a cuenta crear un informe auxiliar y luego llamar a este desde el informe principal. El problema es que necesitamos que los parámetros de entrada del informe principal, se pasen al subinforme para evitar que el informe muestre unos datos y el subinforme otros diferentes.

Para hacer esto una vez creado nuestro subinforme, lo añadimos a nuestro informe principal, arrastrando sobre este un objeto subreport de la pestaña Palette que aparece arriba a la derecha del diseñador de informes de JasperReports.

 

subreport con JasperReports

Al hacer esto, nos sale un diálogo sobre el que elegimos el subinforme pulsando sobre el botón Select a Report File.

 

Select a Report File.

Esto nos mostrará otra pantalla sobre la que elegiremos la primera opción.

(subreport con JasperReports

Workspace resource (an element inside the worspace) y pulsamos sobre el botón Browse para buscar nuesro subinforme (previamente creado como un informe normal y corriente)

 

subreport con JasperReports


Una vez creado nuestro subinforme lo vemos sobre nuestro informe.

Vamos al panel de propiedades del subinforme.

subreport con JasperReports
 

Y pulsamos sobre el botón Edit Parameters y en la pantalla que se abre pulsamos el botón Copy From Master, esto nos pasará a nuestro subinforme los parámetros del informe principal.

 

subreport con JasperReports

Totalizar campos parciales

Ahora nos piden totalizar un campo parcial dentro de nuestro informe, por ejemplo queremos saber el total de ventas por mes en nuestro informe principal de ventas anuales. Dentro de nuestro subinforme, sobre el panel inferior izquierdo (Outline) nos colocamos sobre el Subreport y con el botón derecho del ratón desplegamos y elegimos Create Group.

 

subreport con JasperReports

Elegimos el campo que queremos totalizar y lo arrastramos hasta el Footer del grupo recién creado. Al soltarlo nos sale un cuadro de diálogo en el que nos pide el tipo de totalización, elegimos Sum, pero podemos elegir cualquier valor de los que nos muestra el desplegable según nuestras necesidades.


sábado, 8 de abril de 2023

Importar datos de excel a una tabla oracle

Hay veces que queremos almacenar en una base de datos, los datos que nos pasan o tenemos almacenados en una hoja Excel. En Oracle SQL Developer hay un método para hacerlo automáticamente.

En éste ejemplo crearemos primero una tabla la cual utilizaremos para la importación de los datos.

CREATE TABLE "OWNER"."AUX_TABLA" 

   ( "ID" NUMBER, 

"CAMPO1" VARCHAR2(20 BYTE), 

"CAMPO2" VARCHAR2(20 BYTE), 

"CAMPO3" VARCHAR2(20 BYTE), 

"CAMPO4" VARCHAR2(20 BYTE), 

"CAMPO5" VARCHAR2(20 BYTE)

   ) ;

--------------------------------------------------------

--  Constraints for Table AUX_TABLA

--------------------------------------------------------

  ALTER TABLE "OWNER"."AUX_TABLA" MODIFY ("ID" NOT NULL ENABLE);


Tomamos la hoja de Excel con los datos que vamos a importar (hemos creado tantas columnas en la tabla como en el Excel, además añadimos una columna ID y le ponemos una función que sume de 1 en 1 para tener el ID de las filas.

Importar datos de excel a una tabla oracle


En Sql Developer hacemos click derecho sobre la tabla  y luego en «Importar Datos…».

 

Importar datos de excel a una tabla oracle

 

Seleccionamos el archivo de Excel a importar.

 

Importar datos de excel a una tabla oracle

 Se mostrara el paso 1 del asistente de importación de datos, click en siguiente:

 

Importar datos de excel a una tabla oracle


Hacemos click en siguiente.

 

Selección de las columnas a importar, por defecto se seleccionan todas, click en siguiente:

 

Importar datos de excel a una tabla oracle

 

Definimos la relación de las columnas del origen de los datos (excel) y las columnas de la tabla a la que deseamos importar, por defecto se relacionan en el orden de las columnas del excel y la tabla, debajo podemos ver los datos para asegurarnos que es lo que deseamos importar.

 

Importar datos de excel a una tabla oracle

 Podemos realizarla haciendo click en Terminar.

 

Importar datos de excel a una tabla oracle


con este proceso hemos importado datos de una hoja de excel a una tabla de Oracle.

 

Importar datos de excel a una tabla oracle


 Este proceso también puede realizarse utilizando un archivo CSV.