显示游标的步骤

/*
显示游标处理步骤
1.声明游标
语法结构:cursor 游标名称 is SQL 语句;
2.打开游标
语法结构:open游标名称;
3.提取数据
语法结构:fetch
4.关闭游标
*/

1.显示员工表中的姓名(返回的是多条记录,必须使用游标来处理)

set serveroutput on;--设置plslql显示结果命令

--代码块
declare
--变量
--1.声明游标
cursor c_emp is select ename,sal from emp;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
--代码块
--2.打开游标
open c_emp;
--使用loop循环
loop
--3.提取数据
fetch c_emp into v_ename,v_sal;
exit when c_emp%notfound; --判断游标是否还有数据
--输出信息
dbms_output.put_line('姓名:'||v_ename||',工资:'||v_sal);
end loop;
end;
/

--4.关闭游标

close c_emp;

end;

--2.record类型实现

declare

cursor c_emp is select ename,sal from emp;

type type_emp is record(

v_ename emp.ename%type,

v_sal emp.sal%type

);

v_record type_emp;

begin

--代码块

--2.打开游标

open c_emp;

--使用loop循环

loop

--3.提取数据

fetch c_emp into v_record;

exit when c_emp%notfound; --判断游标是否还有数据

--输出信息

dbms_output.put_line('姓名:'||v_record.v_ename||',工资:'||v_record.v_sal);

end loop;

--4.关闭游标

close c_emp;

end;

--3.扩展:使用游标类型来转换

declare

cursor c_emp is select ename,sal,dname,loc from emp e,dept d where e.deptno=d.deptno;

v_cursor_emp c_emp%rowtype;

begin

--代码块

--2.打开游标

open c_emp;

--使用loop循环

loop

fetch c_emp into v_cursor_emp;

--3.提取数据

exit when c_emp%notfound; --判断游标是否还有数据

--输出信息

dbms_output.put_line('姓名:'||v_cursor_emp.ename||',工资:'||v_cursor_emp.sal || '部门名字:'||v_cursor_emp.dname);

end loop;

--4.关闭游标

close c_emp;

end;

--4.for(声明游标即可)

declare

cursor c_emp is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;

begin

for i in c_emp loop

dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname);

end loop;

end;

--5.带参数的游标

declare

cursor c_emp(v_deptno emp.deptno%type)is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;

begin

for i in c_emp(&n) loop

dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname||i.dname);

end loop;

end;

--6.触发器

create or replace trigger t_1

after

insert on emp

begin

dbms_output.put_line('数据已经插入');

end;

insert into emp(empno,ename) values(11,'Legend');

最新文章

  1. 死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
  2. 调用回调函数出现或者大循环出现has triggered a breakpoint
  3. FW开发代码规范---小任性(2)
  4. linux SMP启动
  5. netfilter分析
  6. EventBus框架在Android多Pane(Fragment)中的应用
  7. JBOSS批量扫描
  8. is not in the sudoers file 解决(转)
  9. MySQL中查询时"Lost connection to MySQL server during query"报错的解决方案
  10. treesoft,couchDB,
  11. Python:Day41 http、css
  12. this is incompatible with sql_mode=only_full_group_by
  13. IDEA下搭建Shiro-web环境,总是报BasicDataSource,classnotfound;问题解决
  14. Zookeeper客户端Curator---Getting Started
  15. 我是该学JAVA呢,还是学IOS开发呢?
  16. NO--15 微信小程序,scroll-view选项卡和跳转
  17. jquery背景backgroundPosition插件
  18. cakephp获取最后一条sql语句
  19. 安装caffe(opencv3+anaconda3)
  20. Java List序列化的实现

热门文章

  1. elasticsearch 聚合查询
  2. 2017-10-4 清北刷题冲刺班p.m
  3. 老男孩Day1作业(一):编写登录接口
  4. 事务隔离实现并发控制:MySQL系列之十
  5. [题解](树形dp/记忆化搜索)luogu_P1040_加分二叉树
  6. 修改profile出错后的补救
  7. POJ1014 Dividing
  8. [Leetcode]008.String to Integer (atoi)
  9. Angular学习笔记【ngx-bootstrap】中的 tabset
  10. Ehab and subtraction(思维题)