Buon giorno a tutti....devo urgentemente scrivere un trigger
(premetto che è la prima volta che lo faccio)
a mio parere semplice.
Ho due tabelle TABELLA1 (idTable,nome,cognome) e TABELLA2(nome,cognome) e voglio che nel momento in cui inserisco dati nelle colonne nome e cognome, questi si inseriscono nei rispettivi
campi della seconda tabella.

Ho cominciato a vedere un po di Pl/SQL ed ho scritto il seguente codice:

CREATE OR REPLACE TRIGGER SCHEMA.NOME_TRIGGER
BEFORE INSERT
ON SCHEMA.TABELLA1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
nome VARCHAR2 (10);
cognome VARCHAR2 (10);

BEGIN
SELECT t1.NOME, t1.COGNOME into nome, cognome FROM TABELLA1 t1 WHERE
(t1.ID_TABLE = (SELECT max(t2.ID_TABLE) FROM TABELLA1 t2));

INSERT INTO TABELLA2 (NOME, COGNOME) VALUES (:New.nome, :New.cognome );

END NOME_TRIGGER;


All'atto dell'insermento mi da un errore:
"ora:01403 nessun dato trovato."

Allora ho pensato che la cosa era normale in quanto è dichiarato BEFORE.
Ho modificato in AFTER ma mi restituisce all'atto dellinserimento in tabella :
"ora:4091 : La Tabella SCHEMA.TABELLA1 è infase di modifica, il trigger/funzione non puo leggerla" e l'errore me lo da sulla SELECT allinterno del BEGIN.


Vorrei capirci qualche cosa...
Grazie