`
zjnbshifox
  • 浏览: 312758 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Oracle动态游标2种写法

 
阅读更多
两种写法实现相同的功能,取第一条匹配的数据,如果没有返回null
create or replace function origin_to_new (v_code varchar2, v_type varchar2) return varchar2 is    
  v_tmp rsb_code_map.new_code%TYPE; 
  type curtype is ref cursor;
  c_cur curtype;
  ssql varchar2(3000);
begin  
  ssql := 'select new_code from rsb_code_map where origin_code=' || '''' || v_code || '''' || ' and code_type=' || '''' || v_type || '''' ;
  open c_cur for ssql;
  --dbms_output.put_line(ssql);
  FETCH c_cur INTO v_tmp;
  CLOSE c_cur;  
  return v_tmp;
end;



create or replace function origin_to_new (v_code varchar2, v_type varchar2) return varchar2 is
    v_tmp rsb_code_map.new_code%TYPE; 
    CURSOR c_cur(v_c VARCHAR2 DEFAULT '',v_t varchar2 default '') IS  SELECT new_code FROM rsb_code_map WHERE origin_code = v_c and code_type=v_t ;
begin
  open c_cur (v_code,v_type); 
  FETCH c_cur INTO v_tmp; 
  CLOSE c_cur;  
  return v_tmp;
end;


在我这里open了以后不能用c_cur%FOUND先判断,这个条件总是不成立,即使有数据,看样子还的详细看oracle游标的说明才行
分享到:
评论

相关推荐

    Oracle Package中返回游标的写法和调用

    Oracle Package有简化应用设计、提高应用性能、实现信息隐藏、子程序重载作用。本文举例说明了Oracle Package中返回游标的写法和调用。

    oracle存储过程返回游标数据集

    存储过程中通过返回数据集,通过游标方式实现,以及在java中如何接收的整个过程

    Oracle显示游标的使用及游标for循环

    2.查询返回多行记录并逐行进行处理时→显式游标 –显示游标属性 declare CURSOR cur_emp IS SELECT * FROM emp; row_emp cur_emp%ROWTYPE; BEGIN OPEN cur_emp; FETCH cur_emp INTO row_emp; WHILE cur_emp%FOUND ...

    oracle存储过程各种写法

    此文档对oracle存储过程做了详细讲解,游标用法 变量定义,触发器,序列,DML DCL DDL

    oracle存储过程写法

    存储过程中实现了游标的用法,并且返回一个数据集的方式。

    sql总结.doc

    (2)存储过程的基本写法(oracle) Create or replace procedure 名称(参数) Is/as (变量的赋值例如:(a name%type)(a varchar(2))) Begin Sql语句以及判断条件 End 名称; (3)存储过程的作用 1.存储过程只在创造...

    oracle存储过程进阶

    介绍了oracle存储过程中常见的sql写法,游标(隐式,显式),触发器, CASE ... WHEN ... THEN ...ELSE ... END,IF... THEN ... ELSIF ...THEN...ELSE...END IF,记录类型变量定义和使用 ,%type定义变量,%rowtype定义变量...

    oracle sql 学习示例

    一些学习sql语句的例句。包括存储过程、游标、自定义函数等各种高难度sql语句写法。

    Oracle事例

    <2>.字符串字段中含有\"\\t \\n\",如果用来在c或者c++程序中输出到文件,格式无法保证。 比如:replace(f2,\'\\t\',\'\') <3>.清除换行和回车 比如: replace(f2,chr(13)||chr(10),\'\') 23、如何在字符串里加...

    SQL培训第一期

    结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询,select。 ...

    精髓Oralcle讲课笔记

    --两张表的连接 此种写法比用where更清晰 69、select ename, dname, grade from emp e join dept d on(e.deptno = d.deptno) join salgrade s on (e.sal between s.losal and s.hisal) ...

    收获不止SQL优化

    3.1.5 获取执行计划的方法(6种武器) 40 3.2 读懂执行计划的关键 48 3.2.1 解释经典执行计划方法 49 3.2.2 总结说明 55 3.3 从案例辨别低效SQL 55 3.3.1 从执行计划读出效率 56 3.3.2 执行计划效率总结 60 ...

Global site tag (gtag.js) - Google Analytics