Advertisement
gkpoll

Untitled

May 14th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.11 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE TRIGGER COD_FK_Alternativas
  3. before INSERT OR UPDATE OF ID_DOCUMENTO ON PESEF_DOC_COMUNICACAO
  4. FOR each ROW
  5. DECLARE
  6.     CURSOR cdoc_xml IS SELECT * FROM PED_DOCUMENTO pdoc WHERE pdoc.ped_cod_documento = :NEW.ID_DOCUMENTO;
  7.     edoc_xml cdoc_xml%ROWTYPE;
  8.    
  9.     CURSOR cdoc_adicional IS SELECT * FROM PED_DOCUMENTOS_ADICIONAIS padd padd.pdo_cod_documento = :NEW.ID_DOCUMENTO;
  10.     edoc_adicional cdoc_adicional%ROWTYPE;    
  11.    
  12.     invalid_id EXCEPTION;
  13. BEGIN
  14. OPEN cdoc_xml;
  15.     FETCH cdoc_xml INTO edoc_xml;
  16.     IF cdoc_xml%NOTFOUND THEN
  17.      
  18.         OPEN cdoc_adicional;
  19.         FETCH cdoc_adicional INTO edoc_adicional;
  20.         IF cdoc_adicional%NOTFOUND THEN
  21.    
  22.            RAISE invalid_id;
  23.            
  24.         ELSE
  25.            NULL;
  26.         END IF;          
  27.            
  28.     ELSE
  29.         NULL;
  30.     END IF;
  31.  
  32. EXCEPTION  
  33. WHEN invalid_id THEN
  34.     CLOSE cdoc_xml;
  35.     CLOSE cdoc_adicional;
  36.     raise_application_error(-20001,'Tentativa de registrar codigo invalido de documento XML ou adicional na PESEF_DOC_COMUNICACAO');
  37.  
  38.    CLOSE cdoc_xml;
  39.    CLOSE cdoc_adicional;
  40. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement