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
--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
相关文章推荐
- Oracle使用手册(二)---流程控制
- 并发控制(4) 使用CyclicBarrier来控制多线程的执行流程
- Oracle使用手册<收藏>
- MySQL-流程控制的使用
- JBPM(五)——使用JBPM4 Service API控制流程
- JAVA流程控制 IF ELSE语句与Switch Case语句的使用
- shell--条件测试语句和流程控制语句的使用
- Oracle使用RMAN恢复控制文件实例
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- oracle——使用事务控制语句
- Oracle 流程控制/循环
- shell脚本——流程控制的操作使用
- MySql自定义函数及流程控制语句的使用
- Oracle使用手册(三)---存储过程与触发器
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程
- Oracle流程控制语句
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- Python笔记第1章,流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用
- MySQL流程控制的使用
- web项目经理手册-版本控制流程