oracle数据库的游标的使用方法

--1:任意执行一个 update操作,用隐式游标sql的属性%found,%notfound,
--%rowcount,%isopen观察update语句的执行情况。

declare
begin
update emp set ename = 'SS' where deptno = 10;
if sql%found then
dbms_output.put_line('更新'||sql%rowcount||'行数据');
elsif sql%notfound then
dbms_output.put_line('没有更新任何数据');
end if;
if sql%isopen then
dbms_output.put_line('游标处于打开状态');
else
dbms_output.put_line('游标处于关闭状态');
end if;
end;

--2: 使用游标和loop循环来显示所有部门的名称

declare
v_name dept.dname%type;

--定义游标

cursor cur_a is select dname from dept;
begin

--打开游标

open cur_a;
loop

--获取游标

fetch cur_a into v_name;
exit when cur_a%notfound;
dbms_output.put_line(v_name);
end loop;

--关闭游标

close cur_a;
end;

select * from dept;

--3:使用游标和while循环来显示所有部门的的地理位置(用%found属性)

declare
address dept.loc%type;

--定义游标

cursor cur_a is select loc from dept ;
begin

--打开游标

open cur_a;

--获取游标

fetch cur_a into address;
while cur_a%found
loop

--获取游标

dbms_output.put_line(address);

--获取游标

fetch cur_a into address;
end loop;

--关闭游标

close cur_a;
end;

--4:接收用户输入的部门编号,用for循环和游标,打印出此部门的所有雇员的所有信息(使用循环游标)
declare
--定义游标

cursor cur_a (id number)is select * from emp where deptno = id ;
begin
for i in cur_a(&nn)
loop
dbms_output.put_line(i.empno||' '||i.ename||' '||i.job||' '||i.hiredate||' '||i.deptno);
end loop;
end;

--5:向游标传递一个工种,显示此工种的所有雇员的所有信息(使用参数游标)
declare
--定义游标

cursor cur_a(v_job varchar2) is select * from emp where job = v_job;
nn emp.job%type;
e emp%rowtype;
begin

--打开游标

open cur_a(&nn);
loop

--获取游标

fetch cur_a into e;
exit when cur_a%notfound;
dbms_output.put_line(e.empno||' '||e.ename||' '||e.job||' '||e.hiredate);
end loop;

--关闭游标

close cur_a;
end;

oracle数据库的游标的使用方法-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2016/11/01/556.html
发表评论

坐等沙发
相关文章
mysql 优化方案整理
mysql 优化方案整理
Mysql中json的字段用法
Mysql中json的字段用法
JDBC原生链接Mysql数据根据表映射生成bean实体类
JDBC原生链接Mysql数据根据表映射生成be…
Mysql索引的最左前缀原则
Mysql索引的最左前缀原则
MySQL数据库sql中字符串函数的字符串截取
MySQL数据库sql中字符串函数的字符串截取
Java技术Jdbc连接数据库方法及使用方法
Java技术Jdbc连接数据库方法及使用方法
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论