Oracle一个表中对应输入的数据对比做出想对应的操作表table有一个number字段的a
存储过程test有一个变量x。如果table表a字段有大于x的纪录y个,那么向A表插入y条a字段等于x的纪录
如果a字段没有大于x的纪录,则a字段全部加100。好了直接上测试数据
- SQL> select * from t;
-
- A
- ----------
- 1382.4
- 1920
- 1500
- 2975
- 1500
- 2850
- 2940
- 5000
- 1800
- 1320
- 1368
- 1560
-
- 已选择12行。
-
- SQL> create or replace procedure emp_test
- 2 (
- 3 x number
- 4 )
- 5 is
- 6 v_a employee.salary%type;
- 7 v_count number;
- 8 i number;
- 9 begin
- 10 i:=0;
- 11 select count(a) into v_count from t where a>x;
- 12 if v_count >0 then
- 13 for i in 1..v_count loop
- 14 insert into t (a) values (x);
- 15 end loop ;
- 16 else
- 17 update t set a=a+100 ;
- 18 end if;
- 19 end;
- 20 /
-
- 过程已创建。
-
- SQL> exec emp_test(9000)
-
- PL/SQL 过程已成功完成。
-
- SQL> select * from t;
-
- A
- ----------
- 1482.4
- 2020
- 1600
- 3075
- 1600
- 2950
- 3040
- 5100
- 1900
- 1420
- 1468
- 1660
-
- 已选择12行。
-
- SQL> exec emp_test(3000)
-
- PL/SQL 过程已成功完成。
-
- SQL> select * from t;
-
- A
- ----------
- 1482.4
- 2020
- 1600
- 3075
- 1600
- 2950
- 3040
- 5100
- 1900
- 1420
- 1468
- 1660
- 3000
- 3000
- 3000
-
- 已选择15行。
Oracle循环语句小结OCCI开发环境搭建相关资讯 Oracle存储过程
- Oracle存储过程拼接in语句 & 自定 (今 09:21)
- 【PL/SQL系列】Oracle存储过程使用 (04月23日)
- Oracle存储过程及Java调用 (05/28/2015 20:29:33)
| - Java调用Oracle存储过程返回多条结 (04月29日)
- Oracle中的存储过程简单应用 (04月10日)
- 判断点是否落在面中的Oracle存储过 (05/09/2015 09:39:30)
|
本文评论 查看全部评论 (0)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承
|