Oracle: Ejecutar script sql desde shell bash con parámetros

Imagen Oracle: Ejecutar script sql desde shell bash con parámetros

Oracle: Ejecutar script sql desde shell bash con parámetros

  • Autor: fjavimartin

  • Fecha de Creación: 06/07/2017

  • Categorías:

    • Oracle,
    • Script,
    • Sqlplus

Hoy la cosa va de oracle. Crearemos un script de bash desde el que lanzaremos un script sql al que le pasaremos varios parámetros.

En el trabajo tenemos dos entornos de trabajo (explotación/pruebas) en los que nos pasamos la vida instalando diferentes versiones de los mismos productos mediante un script de instalación.

Hasta ahora teníamos un fichero de texto que se iba actualizando con cada instalación anotando una línea por cada instalación con la fecha, producto y versión. El problema es que cada vez que tienes que buscar las instalaciones realizadas un día concreto o cuando se han realizado instalaciones de un determinado producto puede ser una locura.

La solución al problema es sencilla, añadiremos una línea más al final del script de instalación que llamará al script encargado de realizar un insert en un tabla. Tendremos que pasarle a este último los parámetros necesarios con los valores de entorno (exp/pru), producto y versión.

La línea que incluiremos al final del script de instalación y en la que llamaremos al script que ejecutará el insert correspondiente será:

$ versiones.sh entorno producto version

El script versiones.sh será:

#!/bin/bash

# Comprobamos parámetros
if [ "$1" = "" ] || [ "$2" = "" ] || [ “$3” = “” ];
then
  echo "ERROR de FORMATO :  "
  echo "          versiones.sh entorno producto"
  echo "          versiones.sh EXP CERS 9.6.1 
  exit
fi

sqlplus usuario/password@bbdd << EOF > ./versiones.log
insert into uts.instalaciones (fecha, entorno, producto, version) values (sysdate, '$1','$2',’$3’);
EOF

Como veréis no tiene mucha historia, en este script capturamos los parámetros en $1, $2, etc.. como en un script normal. Pasamos al comando sqlplus los datos de conexión e indicamos que el resultado de la operación se guarde en un fichero de texto, finalmente ejecutamos el comando sql y listo!!!!!!

Todos los Derechos Reservados © 2016

Funciona con Drupal