`
shicheng
  • 浏览: 165279 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

带条件的返回游标的存储过程

 
阅读更多

之前写了一个返回游标的存储过程,但是当我在尝试使用参数的时候,却又遇到了一个问题,如何使用参数。

我的语句是这样的:

 create or replace procedure getcur(itemid varchar2,itemname varchar2,p_rc out sys_refcursor)
    is
     sqlstr varchar2(500);
     begin
         sqlstr:='select * from item item_id='||item_id||'itemname='itemname;
         open p_rc for sqlstr ;
     end getcur;

 但是不行,总是报错。

经过一份的折腾,终于试验出来正确的写法

  create or replace procedure getcur(itemidb varchar2,itemnameb varchar2,p_rc out sys_refcursor)
    as   
     begin
         open p_rc for select * from item where itemname=itemnameb and item_id=itemidb ;
     end getcur;

 其实那个引号是不要有的,只要把引号去了就可以了。但是变量名不能与字段名相同,我的变量多在最后加了一个b。

分享到:
评论

相关推荐

    ORACLE 游标 异常 存储过程

    - **示例**:一个使用游标的存储过程可能用于更新表中满足特定条件的行: ```sql CREATE OR REPLACE PROCEDURE update_rows AS cursor_name CURSOR FOR SELECT * FROM table_name WHERE condition; var1 ...

    游标 和 存储过程的创建 及 在程序中的调用

    存储过程是一组预编译的SQL语句,可以接受参数、返回结果集,甚至可以包含控制流程语句,如循环和条件判断。存储过程有以下几个主要优点: 1. 提高性能:由于存储过程预先编译,执行时只需调用即可,减少了解析和...

    游标参数的存储过程 存储过程高级教程

    本教程主要关注的是带游标参数的存储过程,这是一种高级用法,允许在存储过程中处理多条记录,特别适用于需要逐行处理数据的情况。 首先,我们要理解存储过程的基本概念。存储过程可以包含变量声明、条件判断、循环...

    oracle存储过程使用游标对多表操作例子

    在Oracle数据库中,存储过程是一种预编译的SQL代码块,可以接受参数、执行复杂的数据库操作并返回结果。它们提供了一种将业务逻辑封装在数据库内部的方法,从而提高应用程序的性能和安全性。本文将深入探讨如何在...

    游标嵌套 STATUS 异常 存储过程

    本示例提供了一个关于存储过程、异常处理、错误消息返回、游标嵌套及其相关问题解决的综合案例。通过这些知识点的学习,初学者可以更好地理解和掌握如何编写健壮、高效的数据库应用程序。同时,对于更高级的应用场景...

    SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)

    本篇工作笔记主要介绍了达梦数据库(DAMENG DB)7版本中存储过程中的游标使用,包括for循环、IF条件判断以及其他相关操作。 首先,我们来看游标的使用。游标是一种数据库对象,它允许我们逐行处理查询结果。在存储...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及异常处理等高级特性。下面将详细解析报告中的每个知识点。 1. 创建存储过程 存储过程是一种在...

    oracle存储过程、游标、函数

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程特性,如存储过程、游标和函数,使得数据库管理和数据处理更为高效。在这个主题中,我们将深入探讨这三个关键概念及其在实际应用中的作用。 **...

    Mysql游标(循环操作)

    在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过使用游标,我们可以实现更加灵活的数据处理逻辑。 #...

    快速练习ORACLE游标习题及答案

    **解析**:这个示例展示了如何使用显式游标`sal_cur`结合`IF`条件语句来根据不同职位调整员工薪资。使用`FOR UPDATE`子句确保了在更新过程中锁定记录。 ### 四、总结 通过以上示例可以看出,游标在Oracle PL/SQL...

    DB2游标及动态SQL

    - **RETURN_STATUS**:表示函数或存储过程的返回状态。 - **SQLSTATE**:表示SQL语句执行的状态码。 #### 五、事务控制 **5.1 ATOMIC与NOT ATOMIC** - **ATOMIC**:表示事务内的操作是原子性的,如果事务中的任何...

    ORACLE 游标使用示例

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

    非常详细的Oracle游标整理

    参数可以在游标声明时用于限制查询条件,如`cursor rowList(c_name varchar2, c_id number) is select * from chg_test_b b where b.chg_name = c_name and b.chg_id = c_id;` 总之,Oracle游标是数据库编程的核心...

    mysql游标

    除了基础的游标操作,MySQL还支持其他特性,如:嵌套游标(一个游标内部使用另一个游标)、可滚动游标(允许向前和向后移动)以及隐式游标(无需显式声明,常在存储过程中使用)。 在实际应用中,游标常常用于以下...

    SQL游标实例

    使用FETCH语句从游标中提取数据,并将其存储到变量中。例如: ```sql FETCH cursor_name INTO variable1, variable2; ``` 3. **处理数据**: 提取数据后,可以对变量进行操作,执行相应的业务逻辑。例如更新...

    plsql基础(游标)

    在处理游标的过程中,可能会遇到各种异常情况,例如没有找到符合条件的记录。为了更好地管理这些异常,可以在PL/SQL块中加入`EXCEPTION`部分: ```plsql BEGIN -- 游标操作 EXCEPTION WHEN NO_DATA_FOUND THEN ...

    sql 游标详解

    1. **`LOCAL`**:限定游标的作用范围为所在存储过程、触发器或批处理中。当存储过程结束时,游标自动释放。 - 使用场景:常用于存储过程内部使用游标的情况。 2. **`GLOBAL`**:游标的作用范围为整个会话,即从用户...

    游标动态数据库代码

    - **REF CURSOR**:是一种特殊类型的游标,可以作为存储过程或函数的输出参数,用于返回多个结果集。 ### REF CURSOR的使用 ```sql DECLARE TYPE c_s IS REFCURSOR RETURN table%ROWTYPE; TYPE c_s2 IS REFCURSOR...

    在BIRT(百灵报表)中使用存储过程创建数据源

    5. 如果存储过程返回游标,需要设置游标处理,BIRT会自动处理返回的结果集。 6. 完成后,可以在数据集查询编辑器中预览和测试存储过程的执行结果。 在BIRT中使用存储过程的场景包括但不限于: - 调用返回单结果集...

Global site tag (gtag.js) - Google Analytics