发布于 2016-03-14 21:45:17 | 307 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Oracle关系数据库管理系统

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。


Oracle if else 语句的写法及应用介绍,详细可参考本文
接收contract_no和item_no值,在inventory表中查找,如果产品:W
已发货,在arrival_date中赋值为今天后的7天W
已订货,在arrival_date中赋值为今天后的一个月W
既无订货又无发货,则在arrival_date中赋值为今天后的两个月,W
并在order表中增加一条新的订单记录。W

product_status的列值为'shipped'和'ordered'W
inventory:W
product_idWnumber(6)W
product_descriptionWchar(30)W
product_statusWchar(20)W
std_shipping_qtyWnumber(3)W
contract_item:W
product_id number(6)W
contract_noWnumber(12)W
item_noWnumber(6)W
arrival_dateWdateW
order:W
order_idWnumber(6)W
product_idWnumber(6)W
qtyWnumber(3)W

代码:
 
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'WthenW 
updateWcontract_itemW 
setWarrival_date=add_months(sysdate,1)W//加一个月 
whereWitem_no=&&itemnoWandWcontract_no=&&contractno;W 
else 
updateWcontract_itemW 
setWarrival_date=add_months(sysdate,2)W 
whereWitem_no=&&itemnoWandWcontract_no=&&contractno;W 
insertWintoWordersW 
values(100,i_product_id,i_std_shipping_qty);W 
end if; 
end if; 
commit; 
end; 


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务