miércoles, 11 de julio de 2012

Pasar parametros a un SQL en SQL PLUS Oracle

He usado bastante SQLPLUS en el último proyecto en que he estado. Ejecuto scripts SQL desde unas Shell en Linux. Y una de las cosas que llegue a necesitar es, indicarle al script SQL la ruta donde quiero que me deje el log. El log se genera a partir de la orden spool, y la Shell puede ser ejecutada desde cualquier lugar. Si no indico donde quiero que queden los logs, la Shell dejara los logs dispersos por todo el sistema si es que el administrador la ejecuta desde donde se le ocurra.


Esta problemática la resolví pasandole desde la Shell la ruta donde quiero que deje el log.


Donde:
$user_pass =usuario_bd/pass_user_bd@base_datos
$script_sql=archivo sql
$DIR_LOG =ruta_archivo_log

$script_sql

Para rescatar la variable desde el PLSQL, es similar a Bash donde se rescatan de acuerdo al orden en que se pasan. En este caso paso una variable por lo que el valor desde el SQL lo rescatare de &1, y lo asigno a una variable local con la palabra define (variable de sustitución). Esto ultimo lo hago para que el código quede mas fácil de leer.

Fuente
http://j.gs/1Brc

1 comentario:

Anónimo dijo...

Y el sql? donde lo parametrizas?