Incapaz de almacenar el valor de la columna en variable, TRIGGERS de SQL.
La tabla booked_tickets que he creado para almacenar la información de los boletos:
CREATE TABLE BOOKEDTICKETS(
PNRNO NUMBER PRIMARY KEY,
USERID NUMBER,
TRAINNO NUMBER,
SOURCE VARCHAR2(50),
DESTINATION VARCHAR2(50),
DATEOFARRIV DATE,
DATEOFBOOKING DATE,
STATUS VARCHAR2(50),
NOOFSEATS NUMBER,
BOOKEDCLASS VARCHAR2(50),
SEATNO NUMBER);
La tabla Available_seats para almacenar la información de los asientos disponibles para cada una de las clases disponibles.
AVAILABLESEATS:
CREATE TABLE AVAILABLESEATS(
TRAINNO NUMBER PRIMARY KEY,
SLEEPERSEATS NUMBER,
ONETIERSEATS NUMBER,
TWOTIERSEATS NUMBER,
THREETIERSEATS NUMBER,
GENERAL_SEATS NUMBER);
Esta es la consulta donde tengo problemas para almacenar el valor de los asientos disponibles en una variable.
create or replace trigger status_tgr
before insert on booked_tickets
for each row
follows tkt_capitalize_tgr
declare
availSeats int;
begin
select availSeats = sleeper_seats from AVAILABLE_SEATS where train_no = :new.train_no;
update AVAILABLE_SEATS set sleeper_seats = availSeats – (:new.no_of_seats) where train_no = (:new.train_no);
end;
/
Error
Error en la línea 4: Declaración SQL ignorada
before insert on booked_tickets
for each row
follows tktcapitalizetgr
declare
availSeats int;
davy.ai
El error probablemente se deba al hecho de que la palabra clave
follows
no es válida en este contexto. La palabra clavefollows
se utiliza para especificar el orden de los desencadenadores y no debe utilizarse en un desencadenadorbefore
. La sintaxis correcta debería ser: