`
zjnbshifox
  • 浏览: 316072 次
  • 性别: 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 ...

    SQL游标原理和使用方法

    2. 在Oracle中,游标操作类似,但语法略有不同,例如使用%ROWTYPE关键字自动创建变量以匹配结果集的列。 3. MySQL提供简单的游标支持,但不支持滚动游标,只支持FOR UPDATE的游标,用于在事务中锁定行。 三、游标...

    oracle存储过程写法

    它不仅展示了如何动态地创建和管理临时表,还展示了如何通过游标来遍历记录集,并执行条件查询来统计特定条件下的数据。这些技术在实际应用中非常有用,可以帮助开发者构建高效、可维护的应用程序。

    oracle存储过程各种写法

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

    oracle的update的五种方式

    Oracle 更新语句五种方式详解 Oracle 的更新语句是数据库管理系统中的一种基本操作,用于修改数据库表中的数据。更新语句的优化研究是数据库性能优化的重要组成部分。本文将详细介绍 Oracle 更新语句的五种方式,并...

    sql 取代游标的写法示例

    在SQL编程中,游标(Cursor)是一种处理数据集合的方式,允许我们逐行处理结果集。然而,在某些情况下,游标可能不是最高效的选择,特别是当我们只需要对数据进行一次遍历并更新时。这里我们将讨论如何用单条SQL语句...

    Informix迁移至Oracle数据库的研究.pdf

    - 游标的声明、使用和释放是Oracle和Informix之间的一个重要区别。在Oracle中,释放游标可以通过预编译参数来控制,无需显式调用释放语句。 - Oracle的DML(数据操纵语言)和DDL(数据定义语言)语法与Informix...

    oracle存储过程详解-开发技术

    在Oracle数据库中,存储过程使用PL/SQL语言编写,这是一种专为Oracle设计的过程化语言,它结合了SQL与传统的编程语言特性。 #### 二、存储过程的优点 1. **提高执行效率**:存储过程在编译时被优化,并且存储在...

    oracle数据库期末考试试题及答案一.pdf

    在 Oracle 数据库中, Cost-Based Optimizer (CBO) 和 Rule-Based Optimizer (RBO) 是两种不同的优化器。CBO 根据表统计找到最低成本的访问数据的方法确定执行计划,而 RBO 根据规则选择最佳执行路径来运行查询。在...

    关于oracle存储过程的基本语法

    Oracle存储过程是一种在Oracle数据库中存储的一段可执行的SQL代码或PL/SQL代码,它可以帮助开发人员实现复杂的业务逻辑处理,提高应用程序的性能,并简化数据库管理。 #### 二、Oracle存储过程的基本结构 存储过程...

    Oracle SQL必备参考(PDG)

    2. 聚合函数:除了标准的SUM、COUNT、AVG、MAX和MIN,Oracle还提供了RANK、DENSE_RANK、ROW_NUMBER等排名函数,以及LISTAGG进行字符串连接。 3. 子查询:Oracle SQL允许在查询中嵌套查询,用于比较、筛选或计算。 ...

    Oracle 开发DBA SQL编写规范

    ### Oracle开发DBA SQL编写规范 #### 1. 引言 本文档旨在为Oracle数据库开发者提供一套标准化的SQL及PL/SQL编写指南,通过规范化SQL及PL/SQL的编写方式,提高代码的可读性、可维护性和执行效率。本规范适用于所有...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在动态SQL中使用绑定变量可以提高性能,尤其是在执行多次相同查询时。 - **示例**: ```plsql DECLARE v_sql VARCHAR2(100); v_dept_id NUMBER := 10; BEGIN v_sql := 'SELECT * FROM ...

    Oracle分页查询(很不错的介绍)

    另外,还有另一种写法,即将分页条件都放在最外层: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A ) WHERE RN BETWEEN 21 AND 40 ``` 这种方式也是有效的,但可能会导致...

    oracle存储过程进阶

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

    数据库迁移资料,oracle移植到sybase的技术参考手册

    - Oracle中的`col1=col2(+)`表示左外连接,而在Sybase中,对应的写法为`col1=*col2`或`col2=*col1`。 8. **常量的定义** - Oracle中的常量在Sybase中应重新定义为变量,并检查其作用域。 9. **游标(CURSOR)的使用*...

    oracle考试题复习答.docx

    **题目描述**:“下面哪一种循环不需要用户执行 OPEN 命令来打开显式游标?” - **选项分析**: - A:基本循环需要手动处理游标的打开、获取和关闭。 - B:WHILE 循环同样需要显式地管理游标。 - C:IF 循环不是...

    Convert Oracle to Mysql

    2. **SQL语法差异**:比如子查询、事务处理、游标、存储过程的写法在两个系统间有区别。 3. **字符集支持**:确保两个数据库的字符集设置一致,避免编码问题。 4. **权限和安全**:迁移后需要重新设置MySQL的用户...

Global site tag (gtag.js) - Google Analytics