FOROS DE INFORMATICA
Noticias: Habilitada la opción de Karma para usuarios con más de 50 mensajes
 
*
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
Julio 06, 2020, 12:02:01


Ingresar con nombre de usuario, contraseña y duración de la sesión


Páginas: [1]
  Imprimir  
Autor Tema: Script para generar triggers en oracle.  (Leído 5034 veces)
swcast
Senior
***

Karma:0
Desconectado Desconectado

Mensajes: 191


« : Octubre 20, 2010, 04:44:41 »

Buenas tardes,

Estoy intentando desarrollar un script que genere o cree más de un trigger. El problema que tengo es que cuando intento crear dos me salta un msg diciendo que hay warnings y que el primer trigger es invalido. En cambio, si pongo entre comentarios el segundo y ejecuto el script, se me genera el 1er trigger correctamente.

Si alguien sabe como solucionar esto perfecto.

Gracias

Un saludo
En línea

"NO SE LE PUEDEN PONER BARRERAS AL MAR..."
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #1 : Octubre 21, 2010, 08:03:31 »

Hola puedes indicar como tienes hecho el script.

Un saludo
En línea

swcast
Senior
***

Karma:0
Desconectado Desconectado

Mensajes: 191


« Respuesta #2 : Octubre 22, 2010, 10:04:38 »

Buenos días,

Si he creado un fichero .sql y dentro del mismo sería lo siguiente:

CONNECT user_name/pwd@database

Creo las sequencias que van a ser disparadas por los triggers (Estas las crea bien).

Formato de los triggers:

       CREATE OR REPLACE TRIGGER esq_name.NombreTrigger
            BEFORE
            INSERT OR UPDATE OF NombreColumna
            ON NombreTabla
            REFERENCING OLD AS OLD NEW AS NEW
            FOR EACH ROW
      DECLARE
         v_newVal datatype :=0;
      BEGIN
         IF INSERTING AND :new.NombreColumna IS NULL THEN
            SELECT SecuenciaRelacionada.NEXTVAL INTO v_newVal FROM DUAL;
            :new.NombreColumna := v_newVal;
         END IF;
         END;

Y después de este el siguiente y así creando una cadena de "create triggers".

La solución que le he dado ha sido la de cargar el fichero en mi cliente de BD y seleccionar cada CREATE y ejecutarlos de uno en uno.

Gracias

Un saludo.
En línea

"NO SE LE PUEDEN PONER BARRERAS AL MAR..."
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #3 : Octubre 22, 2010, 10:11:27 »

Hola, prueba poniendo en el END final:

END esq_name.NombreTrigger;

Un saludo
En línea

swcast
Senior
***

Karma:0
Desconectado Desconectado

Mensajes: 191


« Respuesta #4 : Noviembre 02, 2010, 03:48:18 »

Buenas tardes,

OK, solucionado.

Gracias

Saludos
En línea

"NO SE LE PUEDEN PONER BARRERAS AL MAR..."
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.13 | SMF © 2006-2009, Simple Machines LLC

XHTML 1.0 válido! CSS válido! Dilber MC Theme by HarzeM