Paso de Fecha a Query Oracle en Unix (Solaris)

Hola, espero que estén bien.


A veces se requiere correr una y otra vez el mismo query sobre una base de datos Oracle instalada en un Unix, y lo único que cambia entre cada corrida es la fecha, así que es muy tedioso estar abriendo el query y modificando la fecha.

Estuve buscando en Internet y en la siguiente ruta encontré una posible solución:



Así que aplique los comentarios a un query de mi trabajo, aquí va un resumen de los pasos:

  1. Se modifica la consulta para que esta espere el ingreso de los parámetros (en mi query la salida va un archivo vía spool):

.......
WHERE trunc(test_start_time) >= to_date('&1', 'DD/MM/YYYY') AND
trunc(test_start_time) <= to_date('&2', 'DD/MM/YYYY')
.........

Donde &1 es la fecha de inicio y &2 es la fecha final para la consulta.

2. Ahora ejecutas sqlplus, por ejemplo si quieres correr el query para el mes de Diciembre de 2013:

sqlplus user/password@DB_Name @QueryEjecutar.sql '01/12/2013' '31/12/2013'


aquí '01/12/2013'  es &1

y

'31/12/2013' es &2

y se obtiene la siguiente salida:

SQL*Plus: Release 10.2.0.5.0 - Production on Mon Jan 6 20:49:01 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

Disconnected from Oracle Database 10g Release 10.2.0.5.0 - 64bit Production


como se puede ver el query se ha ejecutado sin ningún fallo.

Gracias, sldos.


Comentarios

Entradas populares