设为首页 加入收藏

TOP

Oracle基础(四)pl/sql(二)
2015-11-21 01:48:20 来源: 作者: 【 】 浏览:1
Tags:Oracle 基础 pl/sql
'manager ' then

Update empset sal=sal+500 where empno-spNo;

Else

Update empset sal =sal+200 where empno=spNo;

End if ;

End;

调用 sql>Execsp_pro6(7839)

循环语句

Loop End loop 至少执行一次,先循环再判断

create or replace proceduresp_pro6 (spName varchar2) is

--定义 := 表示赋值

v_num number:=1;

Begin

Loop

insert into users values (v_num,spName);

--判断是否要退出循环

exit when v_num=10;

--自增

v_num :=v_num+1

End loop;

End;

循环语句 while循环

先判断后循环

create or replace proceduresp_pro6 (spName varchar2) is

--定义 := 表示赋值

v_num number:=11;

Begin

While v_num <=20 loop

--执行

insert into users values (v_num,spName);

--自增

v_num :=v_num+1

End loop;

End;

for循环

Begin

For I inreverse 1….10 loop

Insert into users values(I,'顺平');

End loop;

End;不建议使用

顺序控制语句

Goto 建议不用 循环嵌套不要超过三层

用于跳转到特定标号去执行 语句,注意用于使用go to增加复杂性,可读性差

Declare

i int :=1;

Begin

Loop

dbms_output.put_line('输出i=' || i);

if I =10 then

got end_loop;

end if;

i:=i+1;

end loop;

< >

--<<>>goto 标号

Dbms_output.put_line('循环结束');

End;

Null

不会执行任何操作,将控制传递下一句

提高可读性

Declare

v_salemp.sal%type;

v_enameemp.ename%type;

Begin

Select ename,sal into v_ename,v_val

From empwhere empno=%no;

If v_sal<3000 then

Update empsel comm =sal*0.1 where ename=v_ename;

Else

Null;

End if ;

End;

pl/sql出于sql,所以很大一部分沿袭了sql,之前sql server的学习中没有这么深入的接触,这次在pl/sql里面学到的东西更多,学习就这样从不同的角度看问题,然后全面了解它。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle存储过程学习笔记 下一篇oracle查询某张表某个时间点的数..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: