您的位置:首页 > 数据库 > Oracle

Oracle使用手册(二)---流程控制

2010-09-14 16:49 267 查看
--流程控制


--1. if..then..end if




set serveroutput on


declare


i integer:=60;


j integer:=30;


begin


if i>=j then


dbms_output.put_line(j);


end if;


end;




--2.if嵌套条件控制




if 条件1 then


if 条件2 then


语句段1;


else


语句段2;


end if;


else


语句段3;


end if;




--3.循环控制


--loop

exit

end loop




set serveroutput on


declare


i integer:=10;


j integer:=20;


w integer:=10;


begin


loop


i:=i+1;


if(j=i)then


begin


dbms_output.put_line('我哥俩现在一样多了.'|| to_char(j)) ;


exit;


end;


else


w:=w-1;


end if;


end loop;


dbms_output.put_line('w还剩多少: '|| to_char(w)) ;


end;




--4.while

loop

end loop


while 条件 loop


执行语句段;


end loop;




--5.for

in

loop

end


for 循环变量 in[reverse] 循环下界

循环上界 loop


循环处理语句;


end loop;




set serveroutput on


declare


i int:=0;


j int:=100;


begin


for j in 1..6 loop


i:=i+1;


end loop;


dbms_output.put_line('循环次数: '|| to_char(i)) ;


end;




--5.事务处理


--在pl/sql中,可以使用三个事务处理控制命令.


--在PL/SQL程序打开自动提交功能。这样每次执行PL/SQL程序都会自动进行事务提交。


--语句: set auto on;


--相应的,取消自动提交功能的PL/SQL程序为:


--set auto off;




--commit,rollback,savepoint


--select * from student;


--commit;


--delete from student;


--rollback; --回滚刚才的delete 操作.


--select * from student;




savepoint insertpoint;


insert into student(sid,sname) values(900,'mrfu');


--创建保存点 : savepoint 保存点名;


select sid,sname from student where sid=900;


rollback to insertpoint; --回滚保存点: rollbacd to 保存点名;


--dbms_output.put_line('回滚保存点') ;


select sid,sname from student where sid=900;



注意在编写脚本时,要注意添加 begin .... end; 以控制语句执行的起始/终点;否则将会出现语法错误提示;

如:




Code
SQL> set serveroutput on
SQL> declare
2 i int:=1;
3 while i<10 loop
4 insert into test2 (id,score) values(i,i*10);
5 i:=i+1;
6 end;
7 /

declare
i int:=1;
while i<10 loop
insert into test2 (id,score) values(i,i*10);
i:=i+1;
end;

ORA-06550: 第 4 行, 第 8 列:
PLS-00103: 出现符号 "<"在需要下列之一时:
:= . ( @ % ; not null range
default character

SQL> set serveroutput on
SQL> declare
2 i int:=1;
3 begin
4 while i<10 loop
5 insert into test2(id,score) values(i,i*10);
6 i:=i+1;
7 end loop;
8 end;
9 /

PL/SQL procedure successfully completed

SQL> commit;

Commit complete
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: