`
zhanshi258
  • 浏览: 48108 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 游标和函数1

 
阅读更多

游标是一种PL/SQL控制结构;可以对SQL语句的处理进行显示控制,便于对表的行数据逐条进行处理。游标并不是一个数据库对象,只是存留在内存中。

由于使用游标有许多种方法,这里只挑选较常用的进行介绍。对应的表都是oracle安装时自带的表。

 

操作步骤: • 声明游标 • 打开游标 • 取出结果,此时的结果取出的是一行数据 • 关闭游标


到底那种类型可以把一行的数据都装进来

• 此时使用ROWTYPE类型,此类型表示可以把一行的数据都装进来。

 

如:例如:查询雇员编号为7369的信息(肯定是一行信息)。

declare
  eno emp.empno%type;
  empinfo emp%rowtype;
  begin
    eno:=&en;
    select * into empinfo from emp where empno=eno;
    dbms_output.put_line('no:'||empinfo.empno);
    dbms_output.put_line('name:'||empinfo.ename);
  end;
/

 

--使用for循环操作游标(比较常用)
declare
  cursor mycur1 is select * from emp ;
  empinfo emp%rowtype;
  cou number;
  begin
    for empinfo in mycur1 loop
      cou:=mycur1%rowcount;  -- 序号
      dbms_output.put_line(cou);
      dbms_output.put_line('no:'||empinfo.empno);
      dbms_output.put_line('name:'||empinfo.ename); 
    end loop;
  end;
/

 

--再看例子

一次性上涨全部雇员的工资。根据它所在的部门涨工资,规则:

• 10部门上涨10%

• 20部门上涨20%

• 30部门上涨30%

所有部门的上涨工资,最不能超过5000,如果超过5000,则工资就为5000。

declare
  cursor mycur2 is select * from emp;
  empinfo emp%rowtype;
  s emp.sal%type;
  begin
    for empinfo in mycur2 loop
      if empinfo.deptno=10 then
        s:=empinfo.sal*1.1;
      elsif empinfo.deptno=20 then
        s:=empinfo.sal*1.2;
      elsif empinfo.deptno=30 then
        s:=empinfo.sal*1.3;
      end if;
      if s>5000 then
        s:=5000;
      end if;
      update emp set sal=s where empno=empinfo.empno;
    end loop;
  end;
/

 

--函数就是一个有返回值的过程。

--定义一个函数:此函数可以根据雇员的编号查询出雇员的年薪
create or replace function myfun1(eno emp.empno%type) return number
as
  rsal number;
  begin
    select (sal+nvl(comm,0))*12 into rsal from emp where empno=eno;
    return rsal;
  end;
/

 

直接写SQL语句,调用此函数:
select myfun1(7369) from dual;

 

分享到:
评论

相关推荐

    Oracle存储过程、游标、函数的详解

    在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...

    ORACLE 游标使用示例

    在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...

    Oracle游标使用案例大全

    本资源“Oracle游标使用案例大全”提供了一系列实用的示例,旨在帮助学习者深入理解和掌握Oracle游标的用法。 1. **游标的基本概念** - 游标(Cursor):它是一个数据库系统中的结构,用于存储执行SQL查询后的结果...

    Oracle游标视图和自定义函数

    ### Oracle游标、视图和自定义函数 #### 1. 游标 **1.1 游标的优势和类型** 在数据库应用开发过程中,游标作为一种强大的工具,为开发者提供了一种处理从表中检索出的数据的有效方法,特别是在需要逐条处理数据...

    oracle函数触发器游标等几个小例子

    在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...

    Oracle 游标使用大全

    以上只是对Oracle游标使用的一个简要概述,具体到《Oracle 游标使用大全》这份文档,可能会包含更详尽的示例、技巧和案例,帮助开发者更好地理解和运用Oracle游标。通过学习和实践,我们可以提升数据库操作的效率和...

    Oracle游标使用方法及语法大全

    总结来说,Oracle游标提供了一种高效、灵活的方式来处理查询结果,无论是一行还是多行数据,无论是简单的读取还是复杂的更新和删除操作。理解和熟练使用游标是Oracle数据库编程中不可或缺的一部分。

    oracle游标优化

    ### Oracle游标优化 ...通过上述方法,可以在一定程度上优化Oracle游标的性能,从而提高应用程序的整体响应时间和资源利用率。需要注意的是,每种优化策略都应该根据具体的业务需求和技术环境来选择和实施。

    非常详细的Oracle游标整理

    Oracle游标是数据库编程中非常重要的一个概念,主要用于处理SQL查询的结果集。游标允许我们按需逐行处理数据,而不是一次性加载所有结果。这里详细介绍了Oracle中的三种游标类型:隐式游标、显式游标和REF游标。 1....

    ORACLE 游标 异常 存储过程

    总结,Oracle游标在处理数据时提供了极大的灵活性,特别是在编写存储过程和函数时。结合异常处理机制,我们可以创建健壮的数据库应用程序,能够优雅地处理错误和异常情况。在实际开发中,熟练掌握游标和异常处理是...

    oracle存储过程、游标、函数

    **二、Oracle游标** 游标(Cursor)是数据库系统中用于处理单条记录的一种机制。在Oracle中,游标允许我们遍历查询结果集,一次处理一条记录。游标的使用场景包括循环处理结果集、有条件地更新或删除数据等。 1. **...

    Oracle函数游标以及包的定义

    该文件讲解了Oracle数据库中函数游标的创建以及包的定义,对数据库有更深层次的了解

    oracle10g 函数返回游标类型

    此标题直接指向了Oracle 10g环境下,如何设计和实现返回游标类型的数据的函数。游标是数据库中的一个重要概念,它允许用户在数据库中定位、检索、更新和删除数据行。当函数返回一个游标时,调用者可以使用循环或其他...

    Oracle游标实例.txt

    描述重复了标题内容,这表明文件的主要目的是提供关于Oracle游标的实例代码,供学习和参考。 ### 标签 标签“Oracle游标”进一步强调了文章的重点,即Oracle数据库中的游标功能。这有助于读者快速识别文章主题,...

    oracle 管道函数+动态游标

    根据提供的Oracle管道函数和动态游标的代码片段及描述,我们可以深入了解其背后的技术要点与实现细节。下面将逐一解析这些知识点。 ### Oracle管道函数 管道函数(Pipe-lined Function)是Oracle中一种特殊类型的...

    Oracle游标学习二

    -- 在这里处理var1和var2 DBMS_OUTPUT.PUT_LINE(var1 || ', ' || var2); END LOOP; CLOSE cursor_name; END; / ``` 这个例子中,我们声明了一个游标,打开它,然后在循环中逐行提取数据,直到没有更多行为止。...

    Oracle中的游标和函数详解

    Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构;可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理。 游标并不是一个数据库对象,只是存留在内存中。 操作步骤:  声明游标  ...

    Oracle游标和异常处理的应用.doc

    实验报告的主题集中在游标和异常处理,这是Oracle编程中两个关键的概念。游标用于遍历和操作查询结果集,而异常处理则确保在遇到错误时程序能够优雅地恢复或提供反馈。 一、游标的应用 1. 隐式游标: Oracle数据库...

    oracle 游标注入

    面对Oracle游标注入这一威胁,企业和开发者需要采取一系列措施来提高系统的安全性: 1. **参数化查询**: 使用参数化的查询可以有效地防止SQL注入攻击,因为参数化查询可以确保输入数据不会被视为查询的一部分。 2. ...

    什么是oracle 游标

    总之,Oracle游标是数据库编程中的一种强大工具,尤其在需要逐行处理数据、有条件地更新记录或进行复杂数据交互时,游标提供了便利的操作方式。正确理解和运用游标,可以帮助开发人员编写更高效、更灵活的数据库应用...

Global site tag (gtag.js) - Google Analytics