游标(光标)
2017-05-26 15:09
274 查看
cursor 光标名 [(参数名 数据类型[参数名,数据类型]…)] is select 语句
例:cursor c1 is select ename from emp;
打开光标;
-open c1;
关闭光标;
-close c1;(释放资源)
取一行光标的值;
- fetch c1 into pename(取一行到变量中)
例:使用光标查询员工的姓名和薪资,并打印;
按员工的职位涨工资,总裁1000,经理800,其他400
1.光标的属性
%found %notfound
%isopen 判断光标是否打开
%rowcount 影响的行数
2.光标数的限制
默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
例:cursor c1 is select ename from emp;
打开光标;
-open c1;
关闭光标;
-close c1;(释放资源)
取一行光标的值;
- fetch c1 into pename(取一行到变量中)
例:使用光标查询员工的姓名和薪资,并打印;
/*1.光标的属性 %found %not found*/ declare --定义一个光标 cursor cemp is select ename, sal from emp; pename emp.ename%type; psal emp.sal%type; begin --打开光标 open cemp; loop fetch cemp into pename, psal; --当没有取到记录时结束 exit when cemp%notfound; --打印 dbms_output.put_line(pename || '的薪水是' || psal); end loop; --关闭光标 close cemp; end;
按员工的职位涨工资,总裁1000,经理800,其他400
/*按员工的职位涨工资,总裁1000,经理800,其他400*/ declare cursor cemp is select empno, job from emp; pempno emp.empno%type; pjob emp.job%type; begin open cemp; loop fetch cemp into pempno, pjob; exit when cemp%notfound; if pjob = 'president' then update emp set sal = sal + 1000 where empno = pempno; elsif pjob = 'manager' then update emp set sal = sal + 800 where empno = pempno; else update emp set sal = sal + 400 WHERE empno = pempno; end if; end loop; close cemp; commit;--需要提交事务 dbms_output.put_line('涨工资完成'); end;
1.光标的属性
%found %notfound
%isopen 判断光标是否打开
%rowcount 影响的行数
2.光标数的限制
默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
相关文章推荐
- orcle数据库游标(光标)的使用
- 教你如何改变EditText的光标和游标
- 《MySQL入门很简单》学习笔记(14)之第14章存储过程和函数(关键词:MySQL/存储过程/存储函数/光标/游标)
- pl/sql_4_游标(光标)
- oracle之光标(游标)介绍
- PL/SQL程序设计之光标(游标)和例外的使用(二)
- PL/SQL中cursor(光标/游标)的用法
- Oracle中的游标(光标)
- Cursor游标(光标)的使用
- Oracle游标(光标)
- Oracle:光标(游标)
- PL/SQL中cursor(光标/游标)的用法
- 修改所有用户表/存储过程/视图/触发器/自定义函数的所有者为dbo,则用游标(不要理会错误提示)
- sql server 语句 循环 、游标、临时表
- 文本框获取焦点时,光标出现在文本末尾
- 游标和临时表
- 日期光标控件 输入完成后自动跳转 默认跳到日期栏
- Oracle中加密解密的数据库函数,创建(包含游标)和使用存储过程
- Sql Server 中利用游标对table 的数据进行分组统计式输出…
- SQL Server游标的使用