服务器之家

服务器之家 > 正文

oracle if else语句使用介绍

时间:2019-11-13 15:51     来源/作者:oracle教程网

接收contract_no和item_no值,在inventory表中查找,如果产品:
已发货,在arrival_date中赋值为今天后的7天
已订货,在arrival_date中赋值为今天后的一个月
既无订货又无发货,则在arrival_date中赋值为今天后的两个月,
并在order表中增加一条新的订单记录。

product_status的列值为'shipped'和'ordered'
inventory: 
product_idnumber(6) 
product_descriptionchar(30) 
product_statuschar(20) 
std_shipping_qtynumber(3) 
contract_item: 
product_id number(6) 
contract_nonumber(12) 
item_nonumber(6) 
arrival_datedate 
order: 
order_idnumber(6) 
product_idnumber(6) 
qtynumber(3) 

代码: 

复制代码代码如下:


declare 
i_product_id inventory.product_id%type; 
i_product_description inventory.product_description%type; 
i_product_status inventory.product_status%type; 
i_std_shipping_qty inventory.std_shipping_qty%type; 
begin 
//sql语句,将查询出来的值放到定义的变量中 
select product_id, product_description, product_status, std_shipping_qty 
into i_product_id, i_product_description, i_product_status, i_std_shipping_qty 
from inventory where product_id=( 
select product_id from contract_item where contract_no=&&contract_no and item_no=&&item_no 
); 
if i_product_status='shipped' then 
update contract_item set arrival_date=sysdate+7 contract_no=&&contract_no and item_no=&&item_no; 
//这里的elseif 是连着写的 
elseif i_product_status='ordered'then 
updatecontract_item 
setarrival_date=add_months(sysdate,1)//加一个月 
whereitem_no=&&itemnoandcontract_no=&&contractno; 
else 
updatecontract_item 
setarrival_date=add_months(sysdate,2) 
whereitem_no=&&itemnoandcontract_no=&&contractno; 
insertintoorders 
values(100,i_product_id,i_std_shipping_qty); 
end if; 
end if; 
commit; 
end; 

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部