oracle中if使用方法,oracle if else语句使用介绍

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

时间: 2012-11-13

### 回答1: Oracle的if else语句可以使用PL/SQL语言来实现。其基本语法为: IF condition THEN statement(s); ELSE statement(s); END IF; 其,condition为判断条件,如果为真则执行if语句语句,否则执行else语句语句。在语句可以包含多条语句,每条语句以分号结尾。 例如,以下代码实现了一个简单的if else语句: DECLARE num1 NUMBER := 10; num2 NUMBER := 20; BEGIN IF num1 > num2 THEN DBMS_OUTPUT.PUT_LINE('num1大于num2'); ELSE DBMS_OUTPUT.PUT_LINE('num1小于等于num2'); END IF; END; 执行结果为:num1小于等于num2。 ### 回答2: Oracle是一个非常出色的数据库管理系统,拥有强大的语法结构来提供简单和复杂SQL语句并支持PL /SQL编程。IF ELSE语句是SQL语言的一种基本结构,类似于许多其他编程语言,可以在Oracle用于逻辑控制。 IF ELSE语句允许您在条件成立时执行一组代码,否则执行另一组代码。IF-THEN语句的基本概念是:“如果条件成立,那么执行这个代码块,否则执行另一个代码块”。在Oracle,IF-THEN语句结合使用ELSE语句来构建条件流。具体来说,IF-THEN语句应该根据一个表达式或布尔变量为真或假的结果来执行不同的代码段。在使用IF-THEN语句时,可以提供单个条件评估,也可以嵌套多个条件评估。 下面是一个示例:假设我们有一个名为 Employee 的表,并希望在表确定年龄大于或等于 35 的员工的数量。我们可以通过使用 IF-THEN 语句来完成: DECLARE cnt NUMBER; BEGIN SELECT COUNT(*) INTO cnt FROM Employee WHERE age >= 35; IF cnt >= 1 THEN DBMS_OUTPUT.PUT_LINE('There are '+cnt+' employees aged 35 or more'); ELSE DBMS_OUTPUT.PUT_LINE('There is no employee aged 35 or more'); END IF; END; 在上例,我们使用了IF-THEN语句来确定table`Employee`是否有年龄大于等于 35 的员工。首先,我们将使用SELECT语句获取该表符合条件的行数,然后我们检查计数器是否大于或等于1。 如果计数器不为零,那么IF块将输出一条带有记录数量的字符串,否则输出一条没有记录的消息。如果您需要应用更多的条件,请在if-then语句嵌套更多的条件,以便编写更健壮的逻辑流控制。 结论:Oracle数据库管理系统提供了强大的if-else语句,可以应用于逻辑流控制。这些语句使用简单,可以通过嵌套if-else语句使用以适应更多的逻辑控制。建议在编写代码时使用Oracle的if-else条件语句,以提高程序的可读性和易维护性。 ### 回答3: Oracle的if else语句用于控制程序的流程,可以根据某些条件来执行不同的代码块。这个语句通常包含一个条件表达式和两个分支。当条件表达式为真,则执行一个代码块,否则执行另一个代码块。 Oracle的if语句的基本语法如下: IF condition THEN --Statements if the condition is true ELSE --Statements if the condition is false END IF; 其condition是一个由比较运算符组成的表达式,它的值为布尔值(True或False)。如果条件为True,则运行if代码块;否则,运行else代码块。 下面是一个例子: DECLARE a number(2) := 10; BEGIN IF(a = 10) THEN dbms_output.put_line('a is ten'); ELSE dbms_output.put_line('a is NOT ten'); END IF; END; 当a的值为10时,if代码块会被执行,输出为“a is ten”。当a的值不为10时,else代码块会被执行,输出为“a is NOT ten”。 除了基本的if语句Oracle还提供了一些其他类型的if语句。比如: - elseif语句:可以在if语句添加多个elseif子句,用来测试其他条件。 - case语句:用来测试不同值的情况。 总之,Oracle的if语句是一个非常有用的控制流程的工具,可以根据条件来执行不同的代码块,从而帮助开发者轻松地编写复杂的程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值