本文实例讲述了Oracle存储过程游标用法。分享给大家供大家参考,具体如下:
使用游标的5个步骤
1、声明一些变量用于保存select语句返回的指
2、声明游标,并指定select 语句
3、打开游标
4、从游标中获取记录
5、关闭游标
从游标中获取每一条记录可使用fetch语句。fetch语句将列的指读取到指定的变量中;
语法:
fetch cursor_name into variable[, variable ...];
例子:
create or replace procedure sel_person is v_id person.id%type; v_name person.pname%type; v_birthday person.birthday%type; cursor temp_cursor is select * from person; begin open temp_cursor; loop fetch temp_cursor into v_id,v_name,v_birthday; exit when temp_cursor%notfound; dbms_output.put_line(v_id||'----'||v_name||'----'||v_birthday); end loop; close temp_cursor; end sel_person;
备注:为了确定循环是否结束,可以使用布尔变量temp_cursor%notfound。当fetch达到游标中最后一条记录,不能再读取更多记录的时候,这个变量就为真。
希望本文所述对大家Oracle程序设计有所帮助。
我可以在Oracle中通过ODBC执行一批存储过程吗?存储过程具有我使用参数标记绑定的输入参数。 在SQLServer中,我有这个功能,在DB2中,我只能进行批处理插入/更新,但我不能从ODBC/C代码批处理存储过程。 Oracle似乎支持插入语句的批处理,如果使用JDBC,也可以批处理存储过程。 是否可以做同样的事情,但使用对存储过程和ODBC的调用? 谢谢
场景:我有一个存储过程,它基于两个输入从表中获取数据:一个日期和一个字符串(这是一个列名)。第一个过程是从另一个过程调用的,该过程使用光标循环表中的行,并将每一行传递给第一个过程的字符串(要检查的列名)。我对第二个过程(即直接调用的过程)的输入是日期。 问题:当我单独调用它时,我的第一个过程运行良好。我的第二个过程是抛出一些我不知道如何修复的语法错误。 Obs:我已经在这里检查了关于这个主题的一些
我一直试图使用Hibernate执行Oracle存储过程。这不是用于生产,而是用于我正在研究的Java源代码解析项目。简单地说,我不能从Oracle存储过程返回值。 我搜索并阅读了SO、Hibernate Community/Documentations(原生SQL章节)链接中的所有相关链接,并尝试了这些建议,但不知何故无法让它们发挥作用。以下是我的来源--我只包括相关的部分。
我是Spring世界里的一个新人。我有一个问题,从oracle包调用过程并将游标返回到Spring的更好的方法是什么? 我可以像在经典java中那样使用“可调用语句”,但我认为还有更好、更干净的方法,如何做到这一点? 姓名:尼奥,玛丽姓:安德森,史密斯性别:M,W年龄:20,25卷:测试,测试 b)同时,我们有一个包含过程的包HOME_TEST_PKG 过程show_people_data(VAR
问题内容: 由于某些奇怪的原因,我无法从Python测试应用程序中的callproc调用中获得结果。MqSQL 5.2.47中的存储过程如下所示: 现在,在Python 3.3中使用PyCharm时,在调用此存储过程时似乎什么也找不到。这段代码为我提供了预期的结果: 但是这段代码带有cursor.fetchall()或cursor.fetchone()… …返回“ mysql.connector.
本文向大家介绍asp.net中调用oracle存储过程的方法,包括了asp.net中调用oracle存储过程的方法的使用技巧和注意事项,需要的朋友参考一下 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是数
我无法在spring data jpa(版本1.11.16)和oracle服务器中使用带有游标的存储过程。 存储库: 实体上的注释: 这是我调用时的java响应: ↓ 2018-12-11 13:07:26.047调试24164---[nio-9090-exec-2]org.hibernate。SQL:{调用POC_PKG_GEO.PRO_RETURN_REGION(?,)}Hibernate:{
我有一个非常复杂的oracle存储过程,它搜索和检索一些数据。该过程返回一个输出参数-oracle游标。我通过JDBC执行过程: 问题是,查询有时会花费相当长的时间(几分钟),我希望用户能够通过单击按钮随时取消查询。我引用了stmt对象,但不幸的是(从其他线程)调用stmt.cancel()没有效果。 另一方面,当我将CallableStatement sql更改为以下查询时: 在调用stmt.c