WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

oracle if else语句使用介绍

更新时间:2012-11-15 14:27 作者:佚名点击:

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

product_status的列值为'shipped'和'ordered'?
inventory:?
product_id?number(6)?
product_description?char(30)?
product_status?char(20)?
std_shipping_qty?number(3)?
contract_item:?
product_id number(6)?
contract_no?number(12)?
item_no?number(6)?
arrival_date?date?
order:?
order_id?number(6)?
product_id?number(6)?
qty?number(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?
update?contract_item?
set?arrival_date=add_months(sysdate,1)?//加一个月
where?item_no=&&itemno?and?contract_no=&&contractno;?
else
update?contract_item?
set?arrival_date=add_months(sysdate,2)?
where?item_no=&&itemno?and?contract_no=&&contractno;?
insert?into?orders?
values(100,i_product_id,i_std_shipping_qty);?
end if;
end if;
commit;
end;

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容