Oracle - problema con una variable de enlace en un trigger

 
Vista:

problema con una variable de enlace en un trigger

Publicado por Estefanía (1 intervención) el 09/04/2021 22:57:39
Hola, tengo un problema con una variable de enlace en un trigger, al ejecutar me dice que la variable es errónea, pero por más que busco no encuentro el fallo. La variable que me da error es new.salario_antiguo y no entiendo por qué me da error si en la tabla si tengo esta variable. Si me podeis echar una mano os lo agradezco. El código es el siguiente :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
CREATE TABLE AUDITA_SALARIOS
(id_emp NUMBER(2),
salario_antiguo NUMBER(10,2),
salario_nuevo NUMBER (10,2),
fecha DATE,
hora VARCHAR2(10),
username VARCHAR2(10));
 
CREATE OR REPLACE TRIGGER MODIFICACIONES_SALARIO
AFTER UPDATE ON EMPLEADOS_PAC FOR EACH ROW
DECLARE
v_idempleado AUDITA_SALARIOS.ID_EMP%TYPE;
v_salarioantiguo AUDITA_SALARIOS.SALARIO_ANTIGUO%TYPE;
v_salarionuevo AUDITA_SALARIOS.SALARIO_NUEVO%TYPE;
v_fecha DATE;
v_hora AUDITA_SALARIOS.HORA%TYPE ;
v_username AUDITA_SALARIOS.USERNAME%TYPE ;
 
BEGIN
CASE
WHEN UPDATING THEN
v_salarionuevo := 'UPD';
v_salarioantiguo:= :new.salario_antiguo;
END CASE;
 
SELECT TO_CHAR (sysdate, 'HH24:MI:ss')
INTO v_hora FROM dual;
 
SELECT USER
INTO v_username FROM dual;
 
SELECT TO_TIMESTAMP(sysdate,'DD-Mon-RR')
INTO v_fecha FROM dual;
 
INSERT INTO AUDITA_SALARIOS VALUES
(sysdate,
v_hora,
v_username,
v_fecha,
v_salarioantiguo,
v_salarionuevo);
 
END;
/
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder