Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Duda sobre disparadores y fechas

Estas en el tema de Duda sobre disparadores y fechas en el foro de Oracle en Foros del Web. Hola a todos/as!!! Estoy haciendo el trabajo final de carrera y es en Oracle 10g Express Edition. Tengo un problemilla que no se por donde ...
  #1 (permalink)  
Antiguo 27/04/2009, 12:22
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Duda sobre disparadores y fechas

Hola a todos/as!!!

Estoy haciendo el trabajo final de carrera y es en Oracle 10g Express Edition.

Tengo un problemilla que no se por donde cogerlo, a ver si me podéis echar un cable.

Tengo una tabla con un campo Date (fecha_fin), bien necesito que cuando el registro X llegue a su fecha fin (comparándola con la fecha del sistema), de alguna forma me lance un trigger para poder hacer la llamadas a los procedimientos oportunos.

Se que puedo definir triggers sobre la tabla/campos, pero hasta donde yo sé, se definen para insertar, suprimir y modificar. El tema es que la tabla no sufrirá ninguna modificación, simplemente cuando se cumpla la fecha me tendría que avisar de alguna forma.

Esto ha de funcionar así, quiero decir, me obligan a que cuando se cumpla dicha fecha se actualicen una serie de tablas de estadísticas, pero no puedo actualizar esas tablas cuando yo quiera, sino que ha de ser de forma automática y de la forma que os explico.

¿Cómo podría hacerlo?

Saludos y gracias de antemano a todos!!!
  #2 (permalink)  
Antiguo 27/04/2009, 13:57
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Duda sobre disparadores y fechas

checate informacion sobre el paquete dbms_scheduler, con el puedes programar una accion a determinada fecha
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 27/04/2009, 17:00
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda sobre disparadores y fechas

Gracias kikolice, le he estado echando un vistazo y bueno, es un programador tareas (o así +- lo he entendido) el problema es que tengo que definir la fecha de inicio (start_date) y no se si puedo sustituirlo por una consulta (Select fec_fin from...)
Además implicaría tener una tarea programada para cada registro, no se...

Bueno iré haciendo pruebas.

Gracias de nuevo.
  #4 (permalink)  
Antiguo 27/04/2009, 23:34
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Duda sobre disparadores y fechas

si es un programador de tareas, asi como veo tu problema esa parte de la fecha la controlarias por codigo interno del proceso que correria el job que generes

"Además implicaría tener una tarea programada para cada registro, no se..."

pues no al contrario, hacerla por job es que cada cierto tiempo el proceso cheque la bandera que quieres definir (fecha_fin < sysdate)

si lo quieres hacer por registro y que sea automatico entonces hazlo por triguer y adentro por codigo compruebas la bandera
__________________
Blogzote.com :-) Mi blog
  #5 (permalink)  
Antiguo 28/04/2009, 05:12
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda sobre disparadores y fechas

Cita:
Iniciado por kikolice Ver Mensaje
pues no al contrario, hacerla por job es que cada cierto tiempo el proceso cheque la bandera que quieres definir (fecha_fin < sysdate)
Ok, se me ocurre que podría hacer un job programado para cada día 00.01 y que compruebe los registros vencidos (fec_fin = sysdate +1). A partir de aquí a codificar...

Cita:
Iniciado por kikolice Ver Mensaje
si lo quieres hacer por registro y que sea automatico entonces hazlo por triguer y adentro por codigo compruebas la bandera

Esto último no lo entiendo, ¿cuando saltaría el trigger? De hecho ese es el problema principal que tengo.

De todas formas voy a intentar tirar por programar un job diario, a ver si me salgo...

Muchas gracias!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:53.