Oracle使用手册(二)---流程控制--流程控制
Oracle使用手册(二)---流程控制--
1. if..then..end if 
Oracle使用手册(二)---流程控制

Oracle使用手册(二)---流程控制
set serveroutput on 
Oracle使用手册(二)---流程控制
declare 
Oracle使用手册(二)---流程控制
integer:=60;
Oracle使用手册(二)---流程控制
integer:=30;
Oracle使用手册(二)---流程控制
begin 
Oracle使用手册(二)---流程控制
if i>=then
Oracle使用手册(二)---流程控制dbms_output.put_line(j);
Oracle使用手册(二)---流程控制
end if;
Oracle使用手册(二)---流程控制
end;
Oracle使用手册(二)---流程控制
Oracle使用手册(二)---流程控制
--2.if嵌套条件控制
Oracle使用手册(二)---流程控制

Oracle使用手册(二)---流程控制
if 条件1 then
Oracle使用手册(二)---流程控制   
if 条件2 then
Oracle使用手册(二)---流程控制     语句段1;
Oracle使用手册(二)---流程控制   
else
Oracle使用手册(二)---流程控制     语句段2;
Oracle使用手册(二)---流程控制   
end if;
Oracle使用手册(二)---流程控制
else
Oracle使用手册(二)---流程控制   语句段3;
Oracle使用手册(二)---流程控制
end if;
Oracle使用手册(二)---流程控制
Oracle使用手册(二)---流程控制
--3.循环控制 
Oracle使用手册(二)---流程控制--
loopOracle使用手册(二)---流程控制exitOracle使用手册(二)---流程控制end loop
Oracle使用手册(二)---流程控制

Oracle使用手册(二)---流程控制
set serveroutput on
Oracle使用手册(二)---流程控制
declare 
Oracle使用手册(二)---流程控制 i 
integer:=10;
Oracle使用手册(二)---流程控制 j 
integer:=20;
Oracle使用手册(二)---流程控制 w 
integer:=10;
Oracle使用手册(二)---流程控制 
begin 
Oracle使用手册(二)---流程控制 loop 
Oracle使用手册(二)---流程控制    i:
=i+1;
Oracle使用手册(二)---流程控制    
if(j=i)then
Oracle使用手册(二)---流程控制        
begin
Oracle使用手册(二)---流程控制         dbms_output.put_line(
'我哥俩现在一样多了.'|| to_char(j)) ; 
Oracle使用手册(二)---流程控制         
exit;  
Oracle使用手册(二)---流程控制        
end;
Oracle使用手册(二)---流程控制     
else
Oracle使用手册(二)---流程控制     w:
=w-1;
Oracle使用手册(二)---流程控制     
end if;
Oracle使用手册(二)---流程控制 
end loop;
Oracle使用手册(二)---流程控制   dbms_output.put_line(
'w还剩多少: '|| to_char(w)) ; 
Oracle使用手册(二)---流程控制 
end
Oracle使用手册(二)---流程控制 
Oracle使用手册(二)---流程控制
--4.whileOracle使用手册(二)---流程控制loopOracle使用手册(二)---流程控制end loop
Oracle使用手册(二)---流程控制
while 条件 loop
Oracle使用手册(二)---流程控制   执行语句段;
Oracle使用手册(二)---流程控制
end loop;   
Oracle使用手册(二)---流程控制
Oracle使用手册(二)---流程控制
--5.forOracle使用手册(二)---流程控制inOracle使用手册(二)---流程控制loopOracle使用手册(二)---流程控制end
Oracle使用手册(二)---流程控制
for 循环变量 in[reverse] 循环下界Oracle使用手册(二)---流程控制循环上界 loop
Oracle使用手册(二)---流程控制     循环处理语句;
Oracle使用手册(二)---流程控制
end loop;
Oracle使用手册(二)---流程控制
Oracle使用手册(二)---流程控制
set serveroutput on
Oracle使用手册(二)---流程控制
declare
Oracle使用手册(二)---流程控制 i 
int:=0;
Oracle使用手册(二)---流程控制 j 
int:=100;
Oracle使用手册(二)---流程控制
begin
Oracle使用手册(二)---流程控制  
for j in 1..6 loop
Oracle使用手册(二)---流程控制  i:
=i+1;
Oracle使用手册(二)---流程控制  
end loop;
Oracle使用手册(二)---流程控制   dbms_output.put_line(
'循环次数: '|| to_char(i)) ; 
Oracle使用手册(二)---流程控制
end;
Oracle使用手册(二)---流程控制
Oracle使用手册(二)---流程控制
--5.事务处理
Oracle使用手册(二)---流程控制--
在pl/sql中,可以使用三个事务处理控制命令.
Oracle使用手册(二)---流程控制--
在PL/SQL程序打开自动提交功能。这样每次执行PL/SQL程序都会自动进行事务提交。
Oracle使用手册(二)---流程控制--
语句:   set auto on;
Oracle使用手册(二)---流程控制--
相应的,取消自动提交功能的PL/SQL程序为:
Oracle使用手册(二)---流程控制--
set auto off;
Oracle使用手册(二)---流程控制

Oracle使用手册(二)---流程控制
--commit,rollback,savepoint
Oracle使用手册(二)---流程控制--
select * from student;
Oracle使用手册(二)---流程控制--
commit;
Oracle使用手册(二)---流程控制--
delete from student;
Oracle使用手册(二)---流程控制--
rollback; --回滚刚才的delete 操作.
Oracle使用手册(二)---流程控制--
select * from student;
Oracle使用手册(二)---流程控制

Oracle使用手册(二)---流程控制savepoint insertpoint; 
Oracle使用手册(二)---流程控制
insert into student(sid,sname) values(900,'mrfu');
Oracle使用手册(二)---流程控制
--创建保存点 : savepoint 保存点名;
Oracle使用手册(二)---流程控制
select sid,sname from student where sid=900;
Oracle使用手册(二)---流程控制
rollback to insertpoint; --回滚保存点: rollbacd to 保存点名;
Oracle使用手册(二)---流程控制--
dbms_output.put_line('回滚保存点') ; 
Oracle使用手册(二)---流程控制
select sid,sname from student where sid=900;
Oracle使用手册(二)---流程控制

 

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

如:

 


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
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

 

 

相关文章: