Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2006
Avatar de juanmdq
juanmdq juanmdq is offline
Miembro
 
Registrado: dic 2004
Posts: 52
Poder: 20
juanmdq Va por buen camino
Trigger y campo CLOB

Hola a todos:
Dejo esta pregunta en el foro porque luego de buscar un rato largo por internet no encontre nada que haga referencia al problema que tengo.
El problema es que para realizar la auditoria de unas tablas tenemos definidos unos triggers(el trigger hace simplemente un insert en otra tabla con la misma estructura de la tabla a auditar). hasta ahora no teniamos problemas,HASTA QUE creamos una tabla con un campo de tipo CLOB.
El tema esta en que en la tabla de auditoria el valor del campo CLOB nunca se setea, sin embargo el valor en la tabla origen existe.

Código SQL [-]
CREATE OR REPLACE TRIGGER AUDITATABLAX
AFTER DELETE OR INSERT OR UPDATE
ON TABLAX
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
    estado VARCHAR(10);

BEGIN
    IF DELETING THEN
        estado := 'BAJA';
        INSERT INTO AUDITREQUERIMIENTOS (
                    FECHA,
                    estado,
                    OTROSDATOS,
                    OBSERVACIONES)
          VALUES(   
                    SYSDATE,
                    estado,
                    :OLD.OTROSDATOS,
                    :OLD.OBSERVACIONES
          );

    ELSIF INSERTING OR UPDATING THEN
        IF INSERTING THEN  estado := 'ALTA';
        ELSIF UPDATING THEN estado := 'MODI';
        END IF;

        INSERT INTO AUDITREQUERIMIENTOS (
                    FECHA,
                    estado,
                    OTROSDATOS,
                    OBSERVACIONES)
          VALUES(   
                    SYSDATE,
                    estado,
                    :NEW.OTROSDATOS,
                    :NEW.OBSERVACIONES
          );

    END IF;

END;

por ejemplo si inserto un registro con los valores
otrosdatos = 'PRUEBA' y
observaciones = 'OBSERVACIONES DE PRUEBA'

en la tabla de auditoria obtengo
SYSDATE estado OTROSDATOS OBSERVACIONES
14/12/2006 'ALTA' 'PRUEBA'

si modifico el registro anterior pasa exactamento lo mismo.
modifico 'PRUEBA' por 'OTRA PRUEBA'

en la tabla de auditoria obtengo
SYSDATE estado OTROSDATOS OBSERVACIONES
14/12/2006 'ALTA' 'PRUEBA'
14/12/2006 'MODI' 'OTRA PRUEBA'


Por curiosidad probe de cambiar el trigger para que en vez de insertar en la tabla de auditoria el nuevo valor (:NEW.OBSERVACIONES) inserte el viejo (:OLD.OBSERVACIONES), y el valor viejo lo obtiene y lo inserta correctamente.


Si alguien tiene una idea de lo que puede estar pasando, o se le ocurre alguna prueba que pueda realizar le agradeceria mucho que lo comente.

desde ya muchas gracias.



P.D.:Version de oracle
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Prod
PL/SQL Release 10.1.0.3.0 - Production
CORE 10.1.0.3.0 Production
TNS for Linux: Version 10.1.0.3.0 - Production
__________________
Al infierno se llega por atajos.
Responder Con Cita
  #2  
Antiguo 15-12-2006
Avatar de juanmdq
juanmdq juanmdq is offline
Miembro
 
Registrado: dic 2004
Posts: 52
Poder: 20
juanmdq Va por buen camino
Hola de nuevo.
Aca dejo un link a un hilo en otro foro donde se plantea este problema.
Esta fue la explicacion mas clara que encontre, igual no deja muy claro cual es el problema de fondo.
Si alguien encuentra algun dato mas seria interesante que lo postee.

http://www.orafaq.com/forum/t/47865/2/

Hasta luego y gracias.
__________________
Al infierno se llega por atajos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
trigger a nivel de campo carlomagno Firebird e Interbase 19 23-06-2011 17:39:49
Como validar un campo en un Trigger santi33a MS SQL Server 2 29-11-2005 13:38:57
Campo CLOB de varias paginas. RaulChemical Impresión 1 08-09-2004 11:35:26
Mostrar un campo clob en un grid Lix Oracle 5 27-02-2004 20:48:57
Like, en un campo CLOB, ó BLOB ingacg Oracle 2 15-07-2003 16:10:06


La franja horaria es GMT +2. Ahora son las 01:20:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi