callSQLPlus.sh
Nombre: callSQLPlus.sh
Autor: Juan José Cerezo Mata (Tigreci)
Origen: Original
Lenguaje: bash
Licencia: GPL V.3 (script GPL V.3) pero seria mas bien un contrib pues usa un comando que proviene de Oracle
Propósito: Lanza una sentencia sql pasada por parametro al sqlplus y retorna los resultados sin crear un archivo intermedio de spool, con tan solo las columnas, el cual puede ser tratado a traves de otro script o bien ser escrito en un archivo
Dependencias: Depende de sqlplus (oracle)
Código:
#!/usr/bin/ksh
###############################
# callSQLPlus: script para lanzar sentencias SQL a un servidor oracle.
#
# Author: Juan José Cerezo Mata (Tigreci)
# Version: 0.1
# Date: 17/10/2007
#
###############################
LOG=${HOME}/scripts/log/callSQLPlus.log; #Archivo de log si se desea
CONSULTA="$@" #con dicha variable especial obtenemos toda la lista de argumentos como un solo elemento
echo `date` "Consulta: $CONSULTA" >> $LOG;
SQL_ADMIN="usuario/usuario@servidor"
SALIDA_SQL_PLUS=`sqlplus -S /nolog <<EOF
connect $SQL_ADMIN
set head off
set feedback off
set echo off
set term off
spool off
$CONSULTA
exit
EOF`
echo $SALIDA_SQL_PLUS
Ejemplos de uso:
./callSQLPlus.ksh select * from tusuariosesto saca en pantalla el resultado de la sentencia select
Comentarios:
Pensé en sacar las variables a archivo porque adolece de un gran fallo, y es que la cadena de conexión no puede pasarse por parametro ya que cada espacio en blanco lo interpreta como un argumento con lo que no soy capaz de obtener la sentencia sql en un solo argumento, aunque si se podria crear un archivo de configuración de la que leer la cadena de conexión