oracle if else语句使用介绍
已发货,在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;
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
新手学oracle常见疑问2019-12-05
oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解2019-01-22
oracle case when 语句的用法详解2019-02-07
ORACLE性能优化之SQL语句优化2021-03-10
oracle中使用group by优化distinct2019-12-05
ORACLE 10g 安装教程[图文]2019-01-21
ORA-00947:Not enough values (没有足够的值)的深入分2019-01-22
Oracle显示游标的使用及游标for循环2019-03-01
Oracle 查看表空间的大小及使用情况sql语句2019-01-22
ORA-12514及ORA-28547错误解决方案2019-01-23