Oracle 存储过程例子返回记录集】的更多相关文章

转载:https://www.cnblogs.com/mikalshao/articles/1454134.html Oracle 不支持批量查询,因此无法从一个命令返回多个结果集.使用存储过程时,返回多个结果集类似于返回单个结果集:必须使用 REF CURSOR 输出参数.要返回多个结果集,请使用多个 REF CURSOR 输出参数. CREATE OR new PACKAGE SELECT_EMPLOYEES_JOBS AS TYPE T_CURSOR IS REF CURSOR; PROC…
参考: http://bbs.csdn.net/topics/390866155 辅助参考: http://www.2cto.com/kf/201307/226848.html http://blog.csdn.net/grhlove123/article/details/7549290 在smm中,这样的controller编写方式是不一样的: 存储过程: create or replace procedure pro_getchart(chart_cur out sys_refcursor)…
HRESULT _hr = get_adoEOF(&_result); IsEOF()函数如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL IsEOF()       {return m_pRecordset->adoEOF == VARIANT_TRUE;}; m_pRecordset->adoEOF 将执行下面的函数(见msado15.tli) 1    inline VARIANT_BOOL Recordset15::GetadoEOF (…
package com.srie.db.pro; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class CallPro { public static void main(String[] args) { Connection conn = null; try { Class.forN…
在上一篇<基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD>中完成了使用JPA对实体数据的CRUD操作. 那么,有些情况,会把一些查询语句写在存储过程中,由存储过程来返回记录集. 在这里就先通过EntityManager创建命名存储过程的方法完成调用. 1.创建SQL存储过程 存储过程返回所有的联系人. USE [demodb] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============…
(转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. 但是若按正规的oracle写法,存储过程写在包体里面, 如果这样的话,PB会找不到此存储过程(如果用直连的方式)(如果用ODBC的方式则有可能不能正常识别存储过程的参数) 因此我们需要将存储过程单独写. 首先我们来看下oracle正规的返回结果集的存储过程的写法 方法一: create or re…
原文 Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset DataSet相当你用的数据库: DataTable相当于你的表.一个 DataSet 可以包含多个 DataTable.如果用datatable只适合返回一个结果集(游标)的信息. 例: public DataSet Get_TRAFeeQinfenStatus(int type, string BargainOrderCode, string ParkUserId, string BerthCode) { O…
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次编写的存储,里面用到了嵌套游标和嵌套循环,以及变量的定义方式,第一次不规范的地方还请多多包含,有不明白的地方也可以给我留言,大家互相学习. --准考证 随机生成 存储过程 --生成规则:在用户选择考试关联好考点和考场之后,点击自动生成准考证,准考证按照 当年考试次数后四位+岗位类型+考点编号+考场编…
使用存储过程中,最常用的莫过于查询数据表,并返回结果集. 在SQL SERVER 中,这类操作最简单,通过简单的select * from xx 即可完成.但是在Oracle中并不支持这种写法,那么我们怎么实现跟SQL SERVER同样的功能呢?且看以下代码: create or replace procedure sp_getdept (rep_type in varchar2,sel in varchar2,result out sys_refcursor) as seq ); info )…
一个扩展存储过程调用另一个存储过程,示例: 被调用存储过程:最后会返回一个游标,游标返回一个值.调用这个存储过程的存储过程同样需要获取它. procedure SearchBill --根据到货单号查询所有行号 ( P_code VARCHAR, P_UserCode varchar , P_org varchar, P_warehouse varchar, p_movetype varchar, p_billtype varchar, p_note varchar, p_isred varch…
/// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename">表名</param> /// <returns>表的模拟自增字段值</returns> public decimal GetPKNum(string tablename) { switch (sqlType) { case "MSSQL2008":…
引用地址:http://www.alixixi.com/program/a/2008050727634.shtml   本例在VS2005+Oracle 92010 + WindowsXp Sp2测试通过 1.创建一个游标变量,为返回值使用create or replace package types as  type cursorType is ref cursor;end; 2.创建函数(或者存储过程)create or replace function testpro return typ…
CREATE OR REPLACE PACKAGE pkg_test AS     TYPE myrctype IS REF CURSOR;       PROCEDURE get (p_id NUMBER, p_rc OUT myrctype); END pkg_test; -------------------------------------------------------------------CREATE OR REPLACE PACKAGE BODY pkg_test AS  …
调试了半天,其实整体用map传入传出也挺简单, 主要是调用存储过程 select标签里平时习惯不写 statementType="CALLABLE",调用没有out参数时也能正常用, 调用有out参数的过程时导致一直报java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 6 网上的很多文章写的挺啰嗦, parameterMap要是传入的就是HashMap里面也都是基本类型根本不用写,mabatis会自动识别类型. jdbcType=INTEGER, m…
存储过程 CREATE OR REPLACE PROCEDURE ADMIN.INSERT_OBJ ( OBJEFIRT_parms IN NVARCHAR2, OBJEDATT_parms IN NVARCHAR2, OBJESECT_parms IN NVARCHAR2, OBJECONTENT_parms IN NVARCHAR2, ISRELEASE_parms IN INTEGER, OBJECODE_parms IN NVARCHAR2, TAGS_parms IN NVARCHAR…
首先要弄两个type,不知道什么鬼: 1. create or replace type obj_table as object ( id ), name ), ) ) 2. create or replace type t_table is table of obj_table 函数体: create or replace function getStationListTb(s number) return t_table as rs t_table:= t_table(); ); i ; b…
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATE OR REPLACE PROCEDURE "SP_GET_ARTICLE_DATA"(article_detail_id_$ number, Record_Md5_ID_$ varchar2, content_text_$ clob, ReturnValue out…
1.MYBATIS方法: <select id="getFlowNum" statementType="CALLABLE"> <![CDATA[ {call PRO_CFC_GETFLOWNUM( #{V_IN_RANDOM,mode=IN,jdbcType=VARCHAR},    #{V_IN_BUSCODE,mode=IN,jdbcType=VARCHAR}, #{V_IN_REFRESHVAR,mode=IN,jdbcType=VARCHA…
  oracle 存储过程 返回结果集 CreationTime--2018年8月14日09点50分 Author:Marydon 1.情景展示 oracle存储过程如何返回结果集 2.解决方案 最简单的方式:返回oracle的系统游标 CREATE OR REPLACE PROCEDURE CARD_COUNT_YLJG(V_START_DATE IN VARCHAR2, --开始时间 V_END_DATE IN VARCHAR2, --结束时间 V_PARENTORGID IN VARCHA…
在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得出上一头汗:),这里我简单介绍一下,以供参考,   1  定义包      oracle 返回的结果集需要自定义一个 CURSOR (游标变量)性质的变量,这个要在包头定义,所以要建立一个包,如下是包头 Pl/sql代码 CREATE OR REPLACE PACKAGE PAK_rstest IS…
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集. 配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题. 本文只讨论使用存储过程返回结果集. 具体实现如下: -- 启用服务器输出---------------------set serveroutput…
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集. 配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题. 本文只讨论使用存储过程返回结果集. 具体实现如下: -- 启用服务器输出---------------------set serveroutput…
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)   AS BEGIN INSERT INTO DBO.EMP (ID,NAME) VALUES (PARA1, PARA2); END PRO_1; Java代码: package com.icesoft.service; import java.sql.*; import java.sql.ResultSet; p…
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57|  分类: net|字号 订阅   CREATE OR REPLACE PACKAGE pkg_tableTypeIS     type Tabletype is ref cursor;     PROCEDURE SP_CPZD      (      CPNO IN VARCHAR2,      STATUS IN VARCHAR2,      t_sql out Tabletype      );END;CRE…
Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,ibatis调用存储过程有一个专门的标签<procedure>,在mybats里面已经没有这本标签了,而是通过一个参数statementType="CALLABLE"来区分.废话不多说,直接看怎么写吧! 测试环境:mybats3.0.4 + sqlserver2008 +Spri…
本文转自:http://liye9801.blog.163.com/blog/static/6019703200901244448950/ 今天学习了一个Oracle中的存储过程,一开始便被如果返回结果集难住了.经Google后,找到很多资料,发现一种最简便的方式(见下面的存储过程部分): 存储过程建好后,怎么调试它又成了问题,它不能像MS-SqlServer一样exec,但是可以通过下面的SQL语句调用(见调用存储过程SQL版),主要知识点是 参考游标的使用. 后面附上.NET调用存储过程返回…
这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname out student.sname%type, stphone out student.phonenumber%type, stuadd out student.saddress%type) 2 as countnumber number; 3 begin 4 selectcount(*) int…
最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执行存储过程? 2.通过ibatis.net执行存储过程时,如何传参数? 3.通过ibatis.net执行存储过程时,传递参数过程中,dbType和type是如何对应的? 4.oracle存储过程中返回的游标集合SYS_REFCURSOR对应dbType是什么? 5.通过ibatis.net执行存储过…
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字 2.SELECT INTO STATEMENT  将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条  记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)  例子:   BEG…
一,oracle存储过程语法   1.oracle存储过程结构  CREATE OR REPLACE PROCEDURE oracle存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END oracle存储过程名字   2.无返回值的oracle存储过程 create or replace procedure xs_proc_no is begin   insert into…