Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Trigger

  1. #1

    Trigger

    Sto imparando a usare i trigger su sql di oracle. Creando questo trigger:


    codice:
    CREATE OR REPLACE TRIGGER TEST2
    BEFORE UPDATE OF prestito_kmf, prestito_datarit, prestito_cond  ON prestito
    referencing new as new old as old
    for each row
    declare
    maxdata_decl date;
    nulla EXCEPTION;
    BEGIN
    
    select max(:old.prestito_datarit) 
    into maxdata_decl
    from prestito
    where :old.prestito_codice_veicolo= :new.prestito_codice_veicolo;
    
    
    if :old.prestito_kmf is NOT null
    then
    	if (:old.prestito_datarit != maxdata_decl)
    	then 
    	raise nulla;
    	end if;
    end if;
    
    exception
    when nulla
    then 
    null;
    end;
    /
    Ricevo questo errore:
    ORA-04091 table is mutating, trigger/function may not see it


    Sapete come posso risolvere? Sono giorni che ci sbatto la testa ma non capisco... Mi serve fare questi controlli per creare un trigger più complesso ma non riesco a farli funzionare.

    Dimenticavo,

    Buon Natale

  2. #2

    Re: Trigger

    L' errore sicuramente dipende da questo:

    codice:
    select max(:old.prestito_datarit) 
    into maxdata_decl
    from prestito
    where :old.prestito_codice_veicolo= :new.prestito_codice_veicolo;

    Questo è il codice della tabella:


    codice:
    create table prestito
     ( prestito_codice				number(4) primary key,
       prestito_cliente_codice 	 	number(5),
       prestito_veicolo_codice      number(4),
       prestito_vend_codice			number(2),
       prestito_data_inizio			date,
       prestito_datarit				date,
       prestito_kmi    				number(5),
       prestito_kmf		  			number(5),
       prestito_cond    	    	CHAR(1 BYTE)
     );


    Qualcuno sa perchè ho quell' errore? Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.