当前位置:Gxlcms > 数据库问题 > oracle PL/SQL编程语言之游标的使用

oracle PL/SQL编程语言之游标的使用

时间:2021-07-01 10:21:17 帮助过:25人阅读

select * from emp;

 


2、带参数游标
语法:cursor 游标变量名(参数名 数据类型...) is 查询语句(查询语句语句的右值可以使用游标参数);

示例代码如下:

  1. cursor c2(dno emp.deptno%type) <span style="color: #0000ff;">is</span> <span style="color: #0000ff;">select</span> empno <span style="color: #0000ff;">from</span> emp <span style="color: #0000ff;">where</span> deptno = dno;

 

遍历游标

关键字:open;fetch;close; 

1、不带参数的游标

语法:

open 游标变量名;

  loop

    fetch 游标变量名 into 变量名;

    exit when 条件(常使用:游标变量名%notfound;)

    循环体(使用变量执行其他语句)

  end loop;

close 游标变量名;

示例代码如下:

  1. <span style="color: #000000;">open c1;
  2. loop
  3. fetch c1 into e;
  4. exit when c1</span>%<span style="color: #000000;">notfound;
  5. dbms_output.put_line(e.ename);
  6. end loop;
  7. close c1;</span>

 

2、带参数的游标

语法:

open 游标变量名(实参列表);

 

  loop

    fetch 游标变量名 into 变量;

    exit loop 条件(常使用:游标变量名%notfound;)

    循环体(使用变量执行其他语句)

  end loop;

close 游标变量名;

示例代码如下:

  1. open c2(<span style="color: #800080;">10</span><span style="color: #000000;">);
  2. loop
  3. fetch c2 into eno;
  4. exit when c2</span>%<span style="color: #000000;">notfound;
  5. update emp </span><span style="color: #0000ff;">set</span> sal = sal + <span style="color: #800080;">10</span> <span style="color: #0000ff;">where</span> empno =<span style="color: #000000;"> eno;
  6. commit;
  7. end loop;
  8. close c2;</span>

 

使用游标的两个简单案例

1、使用游标输出emp表所有员工姓名

示例代码如下:

  1. --<span style="color: #000000;">使用游标遍历输出emp表员工姓名
  2. declare
  3. cursor c1 </span><span style="color: #0000ff;">is</span> <span style="color: #0000ff;">select</span> * <span style="color: #0000ff;">from</span><span style="color: #000000;"> emp;
  4. e emp</span>%<span style="color: #000000;">rowtype;
  5. begin
  6. open c1;
  7. loop
  8. fetch c1 into e;
  9. exit when c1</span>%<span style="color: #000000;">notfound;
  10. dbms_output.put_line(e.ename);
  11. end loop;
  12. close c1;
  13. end;</span>

 

2、使用游标给emp表部门编号为10的所有员工增加工资10

示例代码如下:

  1. --<span style="color: #000000;">使用游标给emp部门编号为10的员工涨10元工资
  2. declare
  3. cursor c2(dno emp.deptno</span>%type) <span style="color: #0000ff;">is</span> <span style="color: #0000ff;">select</span> empno <span style="color: #0000ff;">from</span> emp <span style="color: #0000ff;">where</span> deptno =<span style="color: #000000;"> dno;
  4. eno emp.empno</span>%<span style="color: #000000;">type;
  5. begin
  6. open c2(</span><span style="color: #800080;">10</span><span style="color: #000000;">);
  7. loop
  8. fetch c2 into eno;
  9. exit when c2</span>%<span style="color: #000000;">notfound;
  10. update emp </span><span style="color: #0000ff;">set</span> sal = sal + <span style="color: #800080;">10</span> <span style="color: #0000ff;">where</span> empno =<span style="color: #000000;"> eno;
  11. commit;
  12. end loop;
  13. close c2;
  14. end;</span>

 

oracle PL/SQL编程语言之游标的使用

标签:pre   win   编程语言   部门   fetch   declare   exit   div   sql编程   

人气教程排行