Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2010, 12:36
monymony
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
script shell con llamadas a fichero .sql

Hola:

Necesito un script .sh que ejecute varios ficheros .sql.
Lo que tengo hecho es lo siguiente:

clear
# Inicializar variables ------------------------------------------------------------------------
# Directorio para los listados de los logs
DIR_LISTADO=/datos/xxx/log
# Directorio para los scripts
DIR_SCRIPTS=/aplic/xxx/scripts
export DIR_SCRIPTS
DIR_FILE=/datos/xxx/file
export DIR_FILE
ORACLE_SID=orac9; export ORACLE_SID
NLS_DATE_FORMAT='DD/MM/YYYY'; export NLS_DATE_FORMAT
NLS_NUMERIC_CHARACTERS=,.; export NLS_NUMERIC_CHARACTERS
# Estas variables deberían ir en el fichero .profile de unix del usuario correspondiente.
# No obstante, yo las pongo aquí porque si no puede haber problemas al ejecutar la cadena,
# dependiendo de con qué usuario se ejecute.
# ----------------------------------------------------------------------------------------------

# Creación de un fichero de log
echo " " > $DIR_LISTADO/xxx.log
echo " " >> $DIR_LISTADO/xxx.log
echo "Proceso de actualización de la xxx" >> $DIR_LISTADO/xxx.log
date >> $DIR_LISTADO/xxx.log

echo "Conectando con la base de datos... " >> $DIR_LISTADO/xxx.log

# Recogemos el usuario y password para nuestra aplicacion y los metemos en variables
# Esto es siempre igual para todas las aplicaciones, sólo cambia el número de 5 dígitos
#----------------------------------------------------------------------------------------------
# Recoger usuario/password BD

. /aplic/xxx/xxx/xxx xxxxxx 01 STRING
STAT=$?
if [ $STAT != 0 ]; then
echo "El objeto de seguridad no es válido." >> $DIR_LISTADO/xxx.log
read resp
exit 1
else
SERVIDOR=`echo $STRING |cut -d '#' -f1`
USUARIO=`echo $STRING |cut -d '#' -f2`
PASSWORD=`echo $STRING |cut -d '#' -f3`
fi
#----------------------------------------------------------------------------------------------
# Después de haber hecho la conexión a BD, ejecutamos el sql correspondiente y mandamos la salida al log

sqlplus -s $USUARIO/$PASSWORD @$DIR_SCRIPTS/xxx1.sql >> $DIR_LISTADO/xxx.log
sqlplus -s $USUARIO/$PASSWORD @$DIR_SCRIPTS/xxx2.sql >> $DIR_LISTADO/xxx.log
sqlplus -s $USUARIO/$PASSWORD @$DIR_SCRIPTS/xxx3.sql >> $DIR_LISTADO/xxx.log
exit;


Solo me ejecuta el primer fichero xxx1.sql y el resto no.
¿Que puede estar pasando?

Gracias.