Unix - LLamar funcion oracle desde un shell script

 
Vista:

LLamar funcion oracle desde un shell script

Publicado por mario (1 intervención) el 12/07/2007 16:33:30
Buenas soy totalmente novata en unix con shell scipt necesito desde un .sh llamar a una funcion oracle y utilizar en mi .sh los valores que me devuelve la misma. Como lo hago???

Agradezco la colaboracion que puedan prestarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:LLamar funcion oracle desde un shell script

Publicado por Tom (178 intervenciones) el 16/07/2007 19:03:00
$ sqlplus basedatos <<-! >salida
select * from mitabla;
!
$
$ cat salida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LLamar funcion oracle desde un shell script

Publicado por Juan  (1 intervención) el 27/06/2008 08:38:59
Hola, seguramente ya te lo habrán resuelto, pero bueno yo te dejo aqui la solución, por si aún no lo has conseguido...

variable=`sqlplus -s / << EOF
select *
from tabla;
exit
EOF`

De esa forma tienes almacenada el resultado de la consulta en la variable.

Espero haber te ayudado.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LLamar funcion oracle desde un shell script

Publicado por Jose (1 intervención) el 09/07/2008 09:25:59
Puedes hacerlo de la siguiente forma:

1.- Crear un script SQL de la forma (lo he llamado funcion.sql) :
-----------------------------------------------------------------------------------------
SET SERVEROUTPUT ON SIZE 1000000
SET PAGESIZE 1000
SET TIMING OFF
SET VERIFY OFF
SET HEADING OFF

SPOOL resultado_fun.txt

declare

/*Variable que almacena el resultado de la función*/
resul varchar2(30);

begin

/* LLamada a la funcion*/
resul:= ih_fu_valor ('MCFC');

/* Mostramos la variable resul anteponiendole el caracter # */
dbms_output.put_line('#'||resul);

end;
/
-----------------------------------------------------------------------------------------

2.- Crear un script shell de la forma (lo he llamado func.sh):
-----------------------------------------------------------------------------------------
#!/bin/sh

#Ejecutamos la función mediante el siguiente código SQL a través del SQL*Plus
sqlplus ihowner/hostilio << ! > result_sql
@funcion.sql;
quit
!

#Obtenemos el valor que devuelve la función, seleccionando el valor
#que nos interesa del spool generado

resultado=`grep '#' resultado_fun.txt | cut -d '#' -f2`

echo "El resultado de la función es: "$resultado
-----------------------------------------------------------------------------------------

Ejemplo de ejecución:

[oracle@linora] sh func.sh
El resultado de la función es: 0021
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar