服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - 详解Oracle隐式游标和显式游标

详解Oracle隐式游标和显式游标

2020-01-16 15:07baidu_37107022 Oracle

游标是什么?就是在内存开辟的一块临时存储空间。下面通过本文给大家介绍Oracle隐式游标和显式游标的相关知识,需要的朋友参考下吧

游标是什么?就是在内存开辟的一块临时存储空间。

1.Oracle隐式游标

1.1Oracle有常用的哪些隐式游标

1.2 Oracle隐式游标演示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
-- 隐式游标 (使用的表为Oracle默认自带的emp表)
-- sql%rowcount:影响记录条数  sql%found:是否有满足条件的记录
set serveroutput on;
declare
v_ename a_emp.ename%type;
begin
select ename into v_ename from a_emp where empno=7788;
if sql%found then
  dbms_output.put_line(v_ename);
  dbms_output.put_line(sql%rowcount);
end if;
end;
/

因此,我们所有都数据库的操作都是存在游标的。

--------------------------------------------------------------------------------

2.Oracle显式游标

2.1显式游标语法

cursor 游标名称  is 选择语句;

详解Oracle隐式游标和显式游标

详解Oracle隐式游标和显式游标

2.2Oracle显式游标演示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- 显式游标
declare
  -- 创建一个游标
  cursor cursor_a_emp is select empno,ename from a_emp;
  -- 其他变量
  v_empno a_emp.empno%type; --员工编号
  v_ename a_emp.ename%type; --员工姓名
  v_rowcount number;    -- 员工人数
begin
  -- 打开游标
  open cursor_a_emp;
  -- 计算游标中存储记录的条数
  select count(*) into v_rowcount from emp;
  -- 循环取出游标中的数据
  for i in 1..v_rowcount loop
  fetch cursor_a_emp into v_empno,v_ename;
    dbms_output.put_line(v_empno);
    dbms_output.put_line(v_ename);
    dbms_output.put_line('=============================');
  end loop;
  -- 关闭游标
  close cursor_a_emp;
end;
/

游标就是相当于一个临时表,并将这个表存储在内存中,使用完了就会释放掉。

2.3显式游标属性

详解Oracle隐式游标和显式游标

以上所述是小编给大家介绍的Oracle隐式游标和显式游标知识,希望对大家有所帮助,如果大家有任何问题欢迎给我留言,小编会及时回复大家的!

原文链接:http://blog.csdn.net/baidu_37107022/article/details/74858490

延伸 · 阅读

精彩推荐