domingo, 21 de octubre de 2007

Unix shell script para Oracle SQL (III)

Podemos ejecutar una sentencia SQL embebida en el shell script, es decir, script y SQL todo en el mismo fichero.
Listemos el archivo de prueba llamado consulta2.sh.

[monitor@DESA]ls -l consulta2.sh
-rwxrw-r-- 1 monitor dba 69 Aug 14 12:20 consulta2.sh

Veamos el contenido del fichero que contiene el shell script. Observamos que llamada al ejecutable sqlplus monitor/colopass07 es seguida por la cadena <<FIN, la sentencia SQL y la cadena FIN. El texto encerrado entre estas dos cadenas será recibido por el fichero ejecutable por la entrada estandar (stdin).
Los primeros dos caracteres del shell script (#!) NO son un comentario, se utilizan para indicar que el resto de la línea detalla el interprete de comandos que se debe utilizar para ejecutar el script en este caso el Korn shell o /bin/ksh.

[monitor@DESA]cat consulta2.sh
#!/bin/ksh
#
sqlplus monitor/colopass07 <<FIN
SELECT 1
FROM DUAL
/
FIN

El sqlplus recibe por la entrada estándar la sentencia SQL, la ejecuta y termina la ejecución retornando el control al ksh.

[monitor@DESA]consulta2.sh
SQL*Plus: Release 9.2.0.8.0 - Production on Tue Aug 14 12:21:44 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL>
1
----------
1


SQL> Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

[monitor@DESA]

1 comentario:

Anónimo dijo...

Es posible tomar un valor de una variable creada dentro de mi código SQL embebido, y almacenarlo en una variable UNIX creada en la shell script? Ando bloqueado con eso