I'm getting this error for my stored procedure. My ibm db2 doesn't seem to be reading the END IF;
statement.
I'm using Windows 10 for my db2.
Error message:
SQL0104N An unexpected token "END@" was found following "_Details)". Expected tokens may include: "END IF".
My code:
CREATE PROCEDURE SeatPricing (IN seat_num varchar(2), ticket_id varchar(10))
BEGIN
IF seat_num LIKE 'A_' THEN
UPDATE Ticket_Details
SET seat_price = 500.00
WHERE ticket_id = (SELECT ticket_id
FROM Ticket_Details);
UPDATE Ticket
SET seat_price = 500.00
WHERE ticket_id = (SELECT ticket_id
FROM Ticket);
ELSE
UPDATE Ticket_Details
SET seat_price = 300.00
WHERE ticket_id = (SELECT ticket_id
FROM Ticket_Details);
UPDATE Ticket
SET seat_price = 300.00
WHERE ticket_id = (SELECT ticket_id
FROM Ticket);
END IF;
END@
/
You have multiple problem into your stored procedure:
I propose this code :
CREATE PROCEDURE SeatPricing (IN seat_num varchar(2),IN ticketid varchar(10))
BEGIN
DECLARE VALUETOSET decimal(5, 2);
IF seat_num LIKE 'A_' THEN
SET VALUETOSET= 500.00 ;
ELSE
SET VALUETOSET= 300.00 ;
END IF ;
UPDATE Ticket_Details SET seat_price = VALUETOSET and ticket_id = ticketid;
UPDATE Ticket SET seat_price = VALUETOSET and ticket_id = ticketid;
END
ERROR MESSAGE: SQL0104N An unexpected token "END@" was found following "_Details)". Expected tokens may include: " END IF".
Always refer the syntax for creating procedure . You need to end your procedure by ONLY END
with optional <procedure-name>
.
But, you have used END@
at the end, which should be either END
or END SeatPricing
.
END - A mandatory keyword that ends the block. You can optionally specify the name of the procedure .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.