-1
Я не могу выполнить процедуру, то состояние ошибки:Синтаксическая ошибка при создании хранимой процедуры в IBM DB2
неожиданный маркер «END-OF-ЗАЯВЛЕНИЕ» был найден следующий «ent.payment_id) * 0,50" . Ожидаемые жетоны могут включать: "". НОМЕР ЛИНИИ = 6. SQLSTATE = 42601.
Эта процедура должна обновлять общую стоимость, когда код действителен. Я пробую два способа сделать это. Может ли кто-нибудь помочь?
create procedure Prc_Discount(in code char(3), payment_id integer)
begin
if (code ='abc')then
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.50;
else
if (code ='bac')then
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.75;
else
if (code ='cba')then
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.90;
end if;
[email protected]
Еще одна попытка:
create procedure Prc_Discount(in code char(3), payment_id integer)
begin
case code
when abc then
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.50;
when acd then
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.75;
else
update payment
set new.total_price =(select total_price from payment
where new.payment_id=payment.payment_id)*0.90;
end case;
[email protected]
Как связано это Java? –
@HovercraftFullOfEels жаль, что не связано вообще. – student
Тогда, пожалуйста, удалите запутанный тег вопроса Java. Я не могу сделать это, поскольку в вашем вопросе есть редактирование. –