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

Db2

Estas en el tema de Db2 en el foro de Bases de Datos General en Foros del Web. Un saludo, Nosotros tenemos DB2 versión 8 instalada en el sistema operativo Linux. Resulta que necesitamos ejecutar cierto proceso cada vez que se adiciona un ...
  #1 (permalink)  
Antiguo 23/01/2004, 16:20
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años
Puntos: 1
Db2

Un saludo,

Nosotros tenemos DB2 versión 8 instalada en el sistema operativo Linux.

Resulta que necesitamos ejecutar cierto proceso cada vez que se adiciona un registro a una tabla.

La idea que teníamos (ya que la inserción puede hacerse desde diferentes partes) es que se ejecutara un trigger el cual llamaría a un procedimiento quien tendría el proceso necesario.

Al leer la documentación de DB2, al parecer la instrucción "call <nombreProcedimiento>" desde un trigger solo es posible en una versión de DB2 para z...no se que. El caso es que para la versión que tenemos no funciona.
La documentación sigue y dice que coloquemos la lógica del procedimiento dentro del trigger o que ejecutemos un SQL UDF, el cual se puede ejecutar con la instrucción "VALUES(<nombreFuncion(<parametros>)>);".
La primera solución no es muy viable, ya que el procedimiento que queremos llamar, llama a otros procedimientos y se nos volvería algo muy complicado hacerlo de esta manera.
La segunda solución que proponen me suena un poco más, pero al intentar abordarla me encuentro con que tampoco me deja realizar un "call <nombreProcedimiento>" dentro del SQL UDF.

La pregunta es... será que estoy haciendo las cosas bien, o DB2 es tan limitado?
Si existe la manera de hacerlo y tienen un ejemplo de como realizarlo me sería de gran ayuda.

Mil gracias.

Última edición por Salome; 27/01/2004 a las 14:59
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 14:13.