在存储过程中执行3种oracle循环语句
2010-08-30 16:03
453 查看
create or replace procedure proc_msw_strsql
/*
名称:在存储过程中执行3种循环语句
功能:利用循环给表中插入数据
调用:
begin
-- Call the procedure
proc_msw_strsql;
end;
创建人:马素文
创建时间:2010-8-30
*/
is
i int;
begin
i :=1;
loop
insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-01','yyyy-MM-dd'),'D'||i,'I'||i,round(i*100/3,3));
exit when i =10;
i :=i+1;
end loop;
--
i :=1;
while i<=5 loop
insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-02','yyyy-MM-dd'),'D'||i,'I'||i,round(i*200/3,3));
i :=i+1;
end loop;
--如果指定了reverse选项,则循环控制变量会自动减1,否则自动加1
for j in reverse 1..10 loop
--insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-03','yyyy-MM-dd'),'D'||j,'I'||j,round(j*300/3,3));
insert all --first,不会被重复插入
when i <> 2 then into proc_msw_strsql(rpt_date ,dept_id,item,qty)
else into proc_msw_strsql(rpt_date ,dept_id,item,qty)--如果两个表结构完全一样,则列举不用列名
select to_date('2007-01-02','yyyy-MM-dd')as rpt_date,'D'||j as dept_id,'I'||j as item,round(j*300/3,3) as qty from dual;
end loop;
commit;
--???????
<<outer_zzl>>--??????
for x in 1..10 loop
<<inner_zzl>>
for y in 1..100 loop
i :=x*y;
exit outer_zzl when i=500;
exit when i =300;
end loop inner_zzl;
--<<inner_zzl>>
end loop outer_zzl;
--<<outer_zzl>>
end;
/
/*
名称:在存储过程中执行3种循环语句
功能:利用循环给表中插入数据
调用:
begin
-- Call the procedure
proc_msw_strsql;
end;
创建人:马素文
创建时间:2010-8-30
*/
is
i int;
begin
i :=1;
loop
insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-01','yyyy-MM-dd'),'D'||i,'I'||i,round(i*100/3,3));
exit when i =10;
i :=i+1;
end loop;
--
i :=1;
while i<=5 loop
insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-02','yyyy-MM-dd'),'D'||i,'I'||i,round(i*200/3,3));
i :=i+1;
end loop;
--如果指定了reverse选项,则循环控制变量会自动减1,否则自动加1
for j in reverse 1..10 loop
--insert into proc_msw_strsql(rpt_date ,dept_id,item,qty) values(to_date('2007-01-03','yyyy-MM-dd'),'D'||j,'I'||j,round(j*300/3,3));
insert all --first,不会被重复插入
when i <> 2 then into proc_msw_strsql(rpt_date ,dept_id,item,qty)
else into proc_msw_strsql(rpt_date ,dept_id,item,qty)--如果两个表结构完全一样,则列举不用列名
select to_date('2007-01-02','yyyy-MM-dd')as rpt_date,'D'||j as dept_id,'I'||j as item,round(j*300/3,3) as qty from dual;
end loop;
commit;
--???????
<<outer_zzl>>--??????
for x in 1..10 loop
<<inner_zzl>>
for y in 1..100 loop
i :=x*y;
exit outer_zzl when i=500;
exit when i =300;
end loop inner_zzl;
--<<inner_zzl>>
end loop outer_zzl;
--<<outer_zzl>>
end;
/
相关文章推荐
- 在存储过程中执行3种oracle循环语句
- 在存储过程中执行3种oracle循环语句
- 在存储过程中执行3种oracle循环语句
- oracle 存储过程循环执行update语句
- 在存储过程中执行oracle循环语句
- oracle执行存储过程语句
- 在存储过程利用游标循环执行update语句
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- 在存储过程利用游标循环执行update语句
- oracle 存储过程执行可输入sql语句并返回结果集
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- Oracle 存储过程中的循环语句写法
- Oracle 在函数或存储过程中执行一条插入语句并返回主键ID值
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- oracle 执行包含update语句的存储过程并获取结果记录
- Asp.Net访问Oracle 数据库执行SQL语句和调用存储过程
- oracle存储过程中如何执行动态SQL语句
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- oracle 解除 sql语句、存储过程在执行中造成的锁
- oracle 执行包含update语句的存储过程并获取结果记录