Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中对一个表中的数据和输入的参数对比,做出对应的操作(存储过程)

Oracle一个表中对应输入的数据对比做出想对应的操作表table有一个number字段的a
存储过程test有一个变量x。如果table表a字段有大于x的纪录y个,那么向A表插入y条a字段等于x的纪录
如果a字段没有大于x的纪录,则a字段全部加100。好了直接上测试数据
  1. SQL> select * from t;  
  2.   
  3.          A  
  4. ----------   
  5.     1382.4  
  6.       1920  
  7.       1500  
  8.       2975  
  9.       1500  
  10.       2850  
  11.       2940  
  12.       5000  
  13.       1800  
  14.       1320  
  15.       1368  
  16.       1560  
  17.   
  18. 已选择12行。  
  19.   
  20. SQL>  create or replace procedure emp_test  
  21.   2  (  
  22.   3  x number  
  23.   4  )  
  24.   5  is  
  25.   6   v_a employee.salary%type;  
  26.   7   v_count number;  
  27.   8   i number;  
  28.   9   begin  
  29.  10  i:=0;  
  30.  11  select count(a) into v_count from t where a>x;  
  31.  12  if v_count >0 then  
  32.  13   for i in 1..v_count loop  
  33.  14  insert into t (a) values (x);  
  34.  15  end loop ;  
  35.  16   else  
  36.  17   update t set a=a+100 ;  
  37.  18   end if;  
  38.  19   end;  
  39.  20   /  
  40.   
  41. 过程已创建。  
  42.   
  43. SQL> exec emp_test(9000)  
  44.   
  45. PL/SQL 过程已成功完成。  
  46.   
  47. SQL> select * from t;  
  48.   
  49.          A  
  50. ----------   
  51.     1482.4  
  52.       2020  
  53.       1600  
  54.       3075  
  55.       1600  
  56.       2950  
  57.       3040  
  58.       5100  
  59.       1900  
  60.       1420  
  61.       1468  
  62.       1660  
  63.   
  64. 已选择12行。  
  65.   
  66. SQL> exec emp_test(3000)  
  67.   
  68. PL/SQL 过程已成功完成。  
  69.   
  70. SQL> select * from t;  
  71.   
  72.          A  
  73. ----------   
  74.     1482.4  
  75.       2020  
  76.       1600  
  77.       3075  
  78.       1600  
  79.       2950  
  80.       3040  
  81.       5100  
  82.       1900  
  83.       1420  
  84.       1468  
  85.       1660  
  86.       3000  
  87.       3000  
  88.       3000  
  89.   
  90. 已选择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)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规