sábado, 20 de octubre de 2007

Unix shell script para Oracle SQL (II)

Queremos crear un script para el shell de Unix (podría ser el Korn shell, ksh) ejecute una sentencia SQL y nos muestre los datos en la pantalla.
Simplemente escribimos la instrucción aparecida en la entrada Oracle Database Tutorial: Unix shell script para Oracle SQL (I) en una fichero con extensión ".sh".
Para ello utilizaremos los ficheros llamados sentencia.sql y consulta1.sh.
[monitor@DESA]ls -l sentencia.sql consulta1.sh consulta2.sh
-rwxr--r-- 1 monitor dba 51 Aug 14 12:20 consulta1.sh
-rwxrw-r-- 1 monitor dba 69 Aug 14 12:20 consulta2.sh
-rw-r--r-- 1 monitor dba 29 Aug 14 12:19 sentencia.sql

El fichero sentencia.sql solo contiene la sentencia SQL a ejecutar en la base de datos.
[monitor@DESA]cat sentencia.sql
SELECT 1
FROM DUAL
/
EXIT

El fichero consulta1.sh sólo contiene la llamada a ejecución del SQL*Plus con el usuario monitor, la password colopass07, arroba (@) y el nombre del fichero que contiene la sentencia SQL a ejecutar sentencia.sql (los primeros dos caracteres del shell script (#!) 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 consulta1.sh
#!/bin/ksh

sqlplus monitor/colopass07 @sentencia.sql

Ejecutamos el shell script: se conecta, ejecuta el select, muestra una fila con el valor uno, nombre de la columna uno y se desconecta.
[monitor@DESA]consulta1.sh
SQL*Plus: Release 9.2.0.8.0 - Production on Tue Aug 14 12:21:32 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

1
----------
1


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