Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Lanzar SELECT mediante shell

Estas en el tema de Lanzar SELECT mediante shell en el foro de Oracle en Foros del Web. Buenas a todos. Tengo que hacer una fase que me lance en unix un proceso u otro. El proceso a lanzar depende del resultado que ...
  #1 (permalink)  
Antiguo 11/04/2008, 05:52
 
Fecha de Ingreso: octubre-2005
Mensajes: 1
Antigüedad: 18 años, 6 meses
Puntos: 0
Lanzar SELECT mediante shell

Buenas a todos. Tengo que hacer una fase que me lance en unix un proceso u otro. El proceso a lanzar depende del resultado que me devuelve una query.

El codigo de la fase es el siguiente:

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

fichero=unknow
fecha=unknow

(sqlplus user/1234@BBDD <<fin

WHENEVER SQLERROR EXIT 1
set serveroutput on size 10000;


EXECUTE

DECLARE
fecha_ora DATE;
fichero_ora VARCHAR2(100);

BEGIN

SELECT FICH_ENTRADA, FECHA_INICIO INTO fichero_ora, fecha_ora FROM LOG WHERE rownum<2 AND SECUENCIA=-1 ORDER BY FECHA_INICIO DESC;

return fecha_ora;

END;

fin
)

fecha=$?
echo $fecha

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


Es mas que probable que haya metido muvcho la gamba en el codigo, porque yo soy de java y de SQL muy poquito... de procesos y PL ya ni hablamos...

El caso es que quiero recoger los campos fecha y fichero. Si hago lo que pongo ahi, el resuiltado del echo es 0, que no es lo que deberia salir...

Alguien puede echarme una mano, por favor? muchas gracias!
  #2 (permalink)  
Antiguo 11/04/2008, 08:36
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Re: Lanzar SELECT mediante shell

Hola,

Intenta con este script,

Código:
oracle@buo:~/scripts> more 1.sh
valor=""

valor=`sqlplus -s / <<EOF
        set heading off
        set feedback off
        select dummy from dual;
   exit;
EOF`

echo $valor
oracle@buo:~/scripts> sh 1.sh
X
oracle@buo:~/scripts>
El 0 (cero) que ves en estas dos lineas

Cita:
fecha=$?
echo $fecha
es el exit status del SQL*Plus, 0 significa que no hay errores.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.