您的位置:首页 > 数据库

PL/SQL 隐式游标

2017-04-15 09:45 211 查看
 1.更新EMP表中一名员工的信息,并通过游标的属性查看被更新的记录数

SQL> set serveroutput on
SQL> declare
2  begin
3     update emp
4     set sal=1200
5     where empno='7369';
6     if sql%notfound then
7       dbms_output.put_line('未更新任何记录');
8     else
9   dbms_output.put_line('更新' || sql%rowcount || '条记录');
10   end if;
11   end;
12   /

结果:

更新1条记录

PL/SQL 过程已成功完成。

2.添加一个SELECT语句,查看两个SQL语句对游标的影响。

SQL> set serveroutput on
SQL> declare
2  employee_row emp%rowtype;
3  begin
4    update emp
5    set sal=sal+200
6    where job='CLERK';
7    dbms_output.put_line('更新' || sql%rowcount || '条记录');
8    select *
9    into employee_row
10    from emp
11    where empno='7369';
12    dbms_output.put_line('检索到' || sql%rowcount || '条记录');
13  end;
14  /


结果:

更新4条记录

检索到1条记录

PL/SQL 过程已成功完成。

3.使用CURSOR FOR LOOP语句循环输出检索到的员工信息

SQL> set serveroutput on
SQL> declare
2 begin
3 for employee in (select empno,ename,job,sal from emp where deptno=20)
4 loop
5 dbms_output.put('员工编号:' || employee.empno);
6 dbms_output.put('姓名' || employee.ename);
7 dbms_output.put('职位' || employee.job);
8 dbms_output.put_line('薪金' || employee.sal);
9 end loop;
10 end;
11 /

结果:

员工编号:7369姓名SMITH职位CLERK薪金1400

员工编号:7566姓名JONES职位MANAGER薪金2975

员工编号:7788姓名SCOTT职位ANALYST薪金3000

员工编号:7876姓名ADAMS职位CLERK薪金1300

员工编号:7902姓名FORD职位ANALYST薪金3000

PL/SQL 过程已成功完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: