Heim  >  Artikel  >  Datenbank  >  Oracle if else 语句的写法实例

Oracle if else 语句的写法实例

WBOY
WBOYOriginal
2016-06-07 17:18:533417Durchsuche

接收contract_no和item_no值,在inventory表中查找,如果产品:已发货,在arrival_date中赋值为今天后的7天已订货,在arriva

接收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;

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn