Oracle 游标使用整理
2019独角兽企业重金招聘Python工程师标准>>>
1.
declare
--类型定义
cursor c_emp
is
select * from emp_info;
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_emp%rowtype;
begin
for c_row in c_emp loop
dbms_output.put_line(c_row.id||'-'||c_row.emp_id||'-'||c_row.emp_name||'-'||c_row.emp_sex);
end loop;
end;
2.
--Fetch游标
--使用的时候必须要明确的打开和关闭
declare
--类型定义
cursor c_emp
is
select * from emp_info;
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_emp%rowtype;
begin
open c_emp;
loop
--提取一行数据到c_row
fetch c_emp into c_row;
--判读是否提取到值,没取到值就退出
--取到值c_job%notfound 是false
--取不到值c_job%notfound 是true
exit when c_emp%notfound;
dbms_output.put_line(c_row.id||'-'||c_row.emp_id||'-'||c_row.emp_name||'-'||c_row.emp_sex);
end loop;
--关闭游标
close c_emp;
end;
3.
begin
update emp_info set emp_name='gxl@@#@' WHERE EMP_id=2;
if sql%isopen then
dbms_output.put_line('Openging');
else
dbms_output.put_line('closing');
end if;
if sql%found then
dbms_output.put_line('游标指向了有效行');--判断游标是否指向有效行
else
dbms_output.put_line('Sorry');
end if;
if sql%notfound then
dbms_output.put_line('Also Sorry');
else
dbms_output.put_line('Haha');
end if;
dbms_output.put_line(sql%rowcount);
exception
when no_data_found then
dbms_output.put_line('Sorry No data');
when too_many_rows then
dbms_output.put_line('Too Many rows');
WHEN OTHERS THEN
Dbms_Output.put_line('OTHERS!');
end;
4.
--3,使用游标和while循环来显示所有部门的的地理位置(用%found属性)
--游标声明
declare
--类型定义
cursor c_emp
is
select * from emp_info;
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_emp%rowtype;
begin
--打开游标
open c_emp;
--给第一行喂数据
fetch c_emp into c_row;
--测试是否有数据,并执行循环
while c_emp%found loop
dbms_output.put_line('部门地点:'||c_row.emp_name);
--给下一行喂数据
fetch c_emp into c_row;
end loop;
close c_emp;
end;
5.
declare
--类型定义
cursor c_emp(emp_id_i number)
is
select * from emp_info where emp_id = emp_id_i;
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_emp%rowtype;
begin
for c_row in c_emp(1) loop
dbms_output.put_line(c_row.id||'-'||c_row.emp_id||'-'||c_row.emp_name||'-'||c_row.emp_sex);
end loop;
end;
6.
--6:用更新游标来为雇员加佣金:(用if实现,创建一个与emp表一摸一样的emp1表,对emp1表进行修改操作),并将更新前后的数据输出出来 - create table emp_info1 as select * from emp_info;declarecursorcsr_Updateisselect * from emp_info1 for update OF emp_name;empInfo csr_Update%rowtype;emp_name_info emp_info1.emp_name%TYPE; beginFOR empInfo IN csr_Update LOOPIF empInfo.emp_id<2 THENemp_name_info:='a';elsif empInfo.emp_id=3 THENemp_name_info:='b';END IF;UPDATE emp_info1 SET emp_name=emp_name_info WHERE CURRENT OF csr_Update;END LOOP; END;
转载于:https://my.oschina.net/u/1052786/blog/741613
Oracle 游标使用整理相关推荐
- oracle使用游标批量删除数据,oracle 游标批量处理数据
declare --开始时间 v_date_start date:= to_date('2015-05-28 00:00:00','yyyy-mm-dd hh24:mi:ss'); --结束时间 v_ ...
- oracle简单的游标示例,Oracle游标简单示例
使用游标打印员工姓名和薪水 set serveroutput on; declare cursor cemp is select ename,sal from emp; cname emp.ename ...
- Oracle面试题整理
目录 Oracle面试题整理 1.MySQL和Oracle的区别: 2.Oracle中function和procedure的区别? 3. 比较truncate和delete命令 ? 4.oralce中 ...
- oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)
来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...
- oracle 游标中抛出异常的处理方式
在oracle游标的使用中,用for循环是一种较直接open 游标然后关闭游标更好的应用方式.现在写两个存储过程,验证这两种情况下游标中抛出异常后游标是否正常关闭. 现在有一张表emp,表结构如下: ...
- oracle 游标示例
oracle 游标示例 declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50); begin for x in (select ...
- oracle游标错误,ORACLE游标与错误处理
ORACLE游标与异常处理 过程示例 create or replace procedure PROC_TASK_QUERY is g_name task_company_stock_list.g_n ...
- oracle简版如何打开,如何打开和关闭Oracle游标
如何打开和关闭Oracle游标 以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧! 打开Oracle游标 使用游标中的值之前应该首先dewen ...
- oracle游标理解,oracle游标的使用方法
oracle游标的使用方法: ①.定义游标 cursor ②.打开游标 open ③.提取游标 fetch ④.关闭游标 close declare --类型定义 cursor c_job is se ...
最新文章
- 全局容器的创建和使用---单件模式和IOC的容器的应用
- Linux系统管理(六)
- 【面向对象】面向对象技术核心内容归纳总结
- vue报错问题记录1-Cannot read property '0' of null
- Linux系统管理01--系统命令精讲
- javascript中的isNaN()
- laravel php 语法,Laravel之Resource Route的点语法小技巧_PHP开发框架教程
- Raki的统计学习方法笔记0x9章:EM算法及其推广
- [it-ebooks]电子书列表v0.1.1
- python 智能抠图GUI
- 强化学习三、策略迭代与值迭代
- 个人域名快速备案需要哪些资料
- python数据分析师前景及待遇怎么样_数据分析师未来五年发展前景怎么样?
- Handling Complexity in the Halo 2 AI
- 集线器,路由器,交换机的作用和区别是什么?如何区分交换机,集线器,路由器?
- Solr - DIH详解(上卷)
- 从SUMSUNG闪存芯片编号识容量
- (实用简单版)latex如何书写算法algorithm
- Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)
- [风云人物]风云(中国第一本企业家自传)
热门文章
- python在字符串结尾加反斜杠_Python原始字符串和尾部反斜杠
- 网狐 游戏服务器 没有反应_游戏行业该怎么选择服务器?
- 若依如何使用多数据源?
- css html 语法,CSS基础语法
- 网页编辑PHP变量,编辑文件中的php代码和变量
- 计算机黑屏时间,如何在计算机上设置黑屏时间
- Python中使用xpath结合contains
- JS为键盘中的Enter键添加onkeyDown()和onkeyUp()事件
- linux awk搜索文本最后个字符串,[转载]linux下的文本处理命令sedawkgrep
- php 复制mysql数据库_PHP连接MySQL数据库的三种方式