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 游标使用整理相关推荐

  1. oracle使用游标批量删除数据,oracle 游标批量处理数据

    declare --开始时间 v_date_start date:= to_date('2015-05-28 00:00:00','yyyy-mm-dd hh24:mi:ss'); --结束时间 v_ ...

  2. oracle简单的游标示例,Oracle游标简单示例

    使用游标打印员工姓名和薪水 set serveroutput on; declare cursor cemp is select ename,sal from emp; cname emp.ename ...

  3. Oracle面试题整理

    目录 Oracle面试题整理 1.MySQL和Oracle的区别: 2.Oracle中function和procedure的区别? 3. 比较truncate和delete命令 ? 4.oralce中 ...

  4. oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)

    来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...

  5. oracle 游标中抛出异常的处理方式

    在oracle游标的使用中,用for循环是一种较直接open 游标然后关闭游标更好的应用方式.现在写两个存储过程,验证这两种情况下游标中抛出异常后游标是否正常关闭. 现在有一张表emp,表结构如下: ...

  6. oracle 游标示例

    oracle 游标示例 declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50); begin for x in (select ...

  7. oracle游标错误,ORACLE游标与错误处理

    ORACLE游标与异常处理 过程示例 create or replace procedure PROC_TASK_QUERY is g_name task_company_stock_list.g_n ...

  8. oracle简版如何打开,如何打开和关闭Oracle游标

    如何打开和关闭Oracle游标 以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及相关的实际操作,下面和小编一起来看看吧! 打开Oracle游标 使用游标中的值之前应该首先dewen ...

  9. oracle游标理解,oracle游标的使用方法

    oracle游标的使用方法: ①.定义游标 cursor ②.打开游标 open ③.提取游标 fetch ④.关闭游标 close declare --类型定义 cursor c_job is se ...

最新文章

  1. 全局容器的创建和使用---单件模式和IOC的容器的应用
  2. Linux系统管理(六)
  3. 【面向对象】面向对象技术核心内容归纳总结
  4. vue报错问题记录1-Cannot read property '0' of null
  5. Linux系统管理01--系统命令精讲
  6. javascript中的isNaN()
  7. laravel php 语法,Laravel之Resource Route的点语法小技巧_PHP开发框架教程
  8. Raki的统计学习方法笔记0x9章:EM算法及其推广
  9. [it-ebooks]电子书列表v0.1.1
  10. python 智能抠图GUI
  11. 强化学习三、策略迭代与值迭代
  12. 个人域名快速备案需要哪些资料
  13. python数据分析师前景及待遇怎么样_数据分析师未来五年发展前景怎么样?
  14. Handling Complexity in the Halo 2 AI
  15. 集线器,路由器,交换机的作用和区别是什么?如何区分交换机,集线器,路由器?
  16. Solr - DIH详解(上卷)
  17. 从SUMSUNG闪存芯片编号识容量
  18. (实用简单版)latex如何书写算法algorithm
  19. Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)
  20. [风云人物]风云(中国第一本企业家自传)

热门文章

  1. python在字符串结尾加反斜杠_Python原始字符串和尾部反斜杠
  2. 网狐 游戏服务器 没有反应_游戏行业该怎么选择服务器?
  3. 若依如何使用多数据源?
  4. css html 语法,CSS基础语法
  5. 网页编辑PHP变量,编辑文件中的php代码和变量
  6. 计算机黑屏时间,如何在计算机上设置黑屏时间
  7. Python中使用xpath结合contains
  8. JS为键盘中的Enter键添加onkeyDown()和onkeyUp()事件
  9. linux awk搜索文本最后个字符串,[转载]linux下的文本处理命令sedawkgrep
  10. php 复制mysql数据库_PHP连接MySQL数据库的三种方式