oracle存储过程中写IF ELES
展开全部
if 条件 then
语句
elsif 条件 then
语句
else
语句
end if;
语句
elsif 条件 then
语句
else
语句
end if;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if a is not null or b != '01' then
......
elsif (b =1 or b=2) and a is null then
......
end if;
......
elsif (b =1 or b=2) and a is null then
......
end if;
追问
if 或者是 elsif 中再写个if 要结束的话,还用不用在if下写个end if?
追答
用,这些都是成对出现的,例如:
if a is not null or b != '01' then
......
elsif (b =1 or b=2) and a is null then
if b=1 then
......
end if;
......
end if;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if 1=1 then
--
eles
--
end if ;
--
eles
--
end if ;
追问
能写个存储过程带IF的例子么
追答
create or replace procedure update_ply_base_status is
vOrderId TB_TSWWW_PLY.C_ORDERID_RELATE%TYPE;
vProdNo TB_TSWWW_PLY.c_Prod_No%TYPE;
vFinS TB_TSWWW_PLY.c_Fin_Stat%TYPE;
vState TB_TSWWW_PLY.c_Stat%TYPE;
CURSOR CUR_EDR IS
select t.c_orderid_relate,
t.c_prod_no,
t.c_fin_stat,
t.c_stat
from TB_TSWWW_PLY t where t.t_crt_date>=sysdate-1/24 or t.t_upd_date>=sysdate-1/24;
BEGIN
BEGIN
OPEN CUR_EDR;
LOOP
FETCH CUR_EDR
INTO vOrderId, vProdNo, vFinS, vState;
EXIT WHEN CUR_EDR%NOTFOUND;
IF vFinS='0' and vState='1' THEN
BEGIN
IF substr(vOrderId,0,2)='00' THEN
update t_ply_base a set a.c_order_status='005' where a.c_orderid_relate=vOrderId;
ELSE
update t_ply_base a set a.c_order_status='005' where a.c_orderid_relate=vOrderId and a.c_prod_no=vProdNo;
END IF;
END;
END IF;
IF vFinS='1' and vState='1' THEN
BEGIN
IF substr(vOrderId,0,2)='00' THEN
update t_ply_base a set a.c_order_status='008',a.c_payment_status='1' where a.c_orderid_relate=vOrderId;
ELSE
update t_ply_base a set a.c_order_status='008',a.c_payment_status='1' where a.c_orderid_relate=vOrderId and a.c_prod_no=vProdNo;
END IF;
END;
END IF;
END LOOP;
CLOSE CUR_EDR;
COMMIT;
END;
end update_ply_base_status;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恩 然后呢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询