Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   Lanzar SELECT mediante shell (http://www.forosdelweb.com/f100/lanzar-select-mediante-shell-574892/)

amavaliente 11/04/2008 05:52

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!

matanga 11/04/2008 08:36

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


La zona horaria es GMT -6. Ahora son las 21:35.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.