ITPub博客

首页 > 数据库 > Oracle > Oracle Procedure IV

Oracle Procedure IV

原创 Oracle 作者:a960549548 时间:2025-06-09 15:32:24 0 删除 编辑

处理单行数据用  select .. into

处理多行数据就必须需要使用到游标了,游标是一个  SQL   的结果集

  处理多行数据游标必须和循环结合使用。

  ---  显示游标   ---

1
2
3
4
5
6
7
8
declare
   cursor  cur_emp  is
     select  *  from  emp;
begin
   for  i  in  cur_emp loop
     dbms_output.put_line(i.ename ||  ' '  || i.sal);
   end  loop;
end ;

 工作中一般都用显示游标

  ---  隐式游标   ---

1
2
3
4
5
begin
   for  i  in  ( select  *  from  emp) loop
     dbms_output.put_line(i.ename ||  ' '  || i.sal);
   end  loop;
end ;

 将游标应用到之前的控制判断工资水平中,输出多行工资水准:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
declare
   cursor  cur_emp  is
     select  *  from  emp;
begin
   for  i  in  cur_emp loop
     case
       when  i.sal >= 700  and  i.sal <= 1200  then
         dbms_output.put_line(i.empno ||  ' '  || i.ename ||
                              ' 工资真他妈低,还要不要人活了' );
       when  i.sal > 1200  and  i.sal <= 1400  then
         dbms_output.put_line(i.empno ||  ' '  || i.ename ||
                              ' 工资太他妈低了' );
       when  i.sal > 1400  and  i.sal <= 2000  then
         dbms_output.put_line(i.empno ||  ' '  || i.ename ||  ' 工资很低' );
       when  i.sal > 2000  and  i.sal <= 3000  then
         dbms_output.put_line(i.empno ||  ' '  || i.ename ||  ' 刚好够生活' );
       when  i.sal > 3000  and  i.sal <= 9999  then
         dbms_output.put_line(i.empno ||  ' '  || i.ename ||
                              ' 哥还是很牛逼的' );
     end  case ;  end  loop;
end ;

  效果如下所示:

SQL 到 二 一  冂 《 游 承 一 一 一 declare cursor cur_emp  统 计 表  SQL  7369  7499  7521  7566  7654  7698  7782  7788  帽 39  帽 44  帽 76  79 囗 囗  79 囗 2  7934  输 出  缍 冲 区 大 小 1 開 開  ShüTH 工  All-EN 工 资 很 低  , 通 要 不 要 : 了  工 资 太 他 低 了  JONES 冈 刂 好 生 店  htMTIN 工 资 太 他 低 了  BLAKE 冈 刂 好 生 店  匚 冈 刂 好 生 店  SCOTT 冈 刂 好 生 店  还 是 很 牛 的  TURNER 工 资 很 低  黼 工 资 真 他 低 , 还 要 不 要 人 店 了  旺 s 工 资 真 他 低 , 还 要 不 要 人 店 了  FORD 冈 刂 好 生 店  亠 R 工 资 太 他 低 了


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3087080/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle Procedure III
请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171504