`
oboaix
  • 浏览: 274347 次
社区版块
存档分类
最新评论

Oracle 存储过程处理存储过程游标集

 
阅读更多

好久没有写任何东西了,今天补充随便写一点,刚好以前同事问到,以资鼓励,年前最后一点记录.....

 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

--1. use schema scott create temp table,default no data
create table t_emp as select * from scott.emp where 1=2;
--1.1 check data 
select * from t_emp;
--2. create procedure(first)
CREATE OR REPLACE PROCEDURE sp_proc_first(in_deptno number, o_cur OUT SYS_REFCURSOR) 
IS  
sqlstr VARCHAR2(200); -- define variable,
BEGIN  sqlstr := 'SELECT EMPNO, ENAME, job,mgr, hiredate,sal,comm,deptno FROM scott.emp WHERE deptno = :in_deptno';   
OPEN o_cur FOR sqlstr USING in_deptno; -- get cursor value 
END;
--3 create procedure(second) using first procedure
create or replace procedure sp_proc_second(in_deptno number)
is
  type emp_rec_type is record (empno number(4),ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2));
  type emp_tab_type is table of emp_rec_type;
  emp_tab emp_tab_type;
  type uif_tab_type is table of t_emp%rowtype;
  uif_tab uif_tab_type:=uif_tab_type();
  rs sys_refcursor;
begin
  sp_proc_first(in_deptno,rs);-- call first proc
  delete from t_emp;-- delete from all data ,firstly
  fetch rs bulk collect into emp_tab;
  for i in 1..emp_tab.count loop
    uif_tab.extend;
    uif_tab(i).empno := emp_tab(i).empno;
    uif_tab(i).ename := emp_tab(i).ename;
    uif_tab(i).job := emp_tab(i).job;
    uif_tab(i).mgr := emp_tab(i).mgr;
    uif_tab(i).HIREDATE := emp_tab(i).HIREDATE;
    uif_tab(i).SAL := emp_tab(i).SAL;
    uif_tab(i).comm := emp_tab(i).comm;
    uif_tab(i).deptno := emp_tab(i).deptno;
  end loop;
  --insert into all data
  forall i in 1..uif_tab.count
  insert into t_emp values uif_tab(i);
  close rs;
  commit;
end;
--test
begin
  sp_proc_second(10);
end;
--check data
select * from t_emp;

--over

 

分享到:
评论

相关推荐

    Oracle存储过程、游标、函数的详解

    通过以上对Oracle存储过程、游标和函数的详细介绍,我们可以看到这些特性为Oracle数据库提供了一种强大而灵活的方式来处理数据。掌握这些技术对于开发高效的应用程序至关重要。在未来的学习和实践中,我们应该不断...

    Oracle存储过程游标详解

    "Oracle存储过程游标详解" Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步...

    存储过程 游标 oracle

    存储过程 游标 oracle 存储过程 游标 oracle 存储过程 游标 oracle 存储过程 游标 oracle

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    Oracle存储过程out游标

    总结一下,Oracle存储过程的Out游标是PL/SQL中返回多行结果的有效方式,Java通过JDBC API可以方便地调用这些存储过程并处理返回的结果集。在实际开发中,这种技术常用于处理复杂的数据查询和更新操作,特别是在需要...

    Oracle存储过程实例使用显示游标

    在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...

    oracle 的函数、存储过程、游标、简单实例

    本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...

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

    标题:“oracle存储过程使用游标对多表操作例子”直接指出了文章的主题是关于在Oracle环境下,如何利用存储过程和游标实现跨多个表的数据处理。描述部分重复了标题内容,强调了示例性质,表明文章将通过具体实例来...

    oracle存储过程游标

    ### Oracle 存储过程与游标使用...通过以上分析,我们可以看到Oracle存储过程与游标的应用十分广泛,不仅能够提升开发效率,还能增强系统的稳定性和安全性。熟练掌握这些技术对于数据库管理员和开发人员来说至关重要。

    Java调用oracle存储过程通过游标返回临时表

    调用Oracle存储过程并处理返回的游标(Cursor)在Java中通常涉及以下步骤: 1. **建立数据库连接**:使用JDBC(Java Database Connectivity)驱动,通过`DriverManager.getConnection()`方法建立到Oracle数据库的...

    JAVA调用ORACLE存储过程游标使用

    Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细介绍如何在Java中实现这一功能。 首先,确保你已经在Oracle数据库中创建了包含...

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

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

    Oracle 存储过程JAVA调用存储过程 游标使用

    通过阅读和分析这些文件,你可以深入理解如何在Java应用程序中调用Oracle存储过程,并且有效地利用游标处理数据。这个过程涉及到数据库设计、SQL编写、PL/SQL编程以及Java JDBC技术,是数据库开发中的核心技能之一。

    ORACLE 游标 异常 存储过程

    在本篇讨论中,我们将深入理解Oracle游标、异常处理以及如何在存储过程中使用它们。 1. **Oracle游标**: - **定义**:Oracle游标是数据库系统提供的一种机制,用于在结果集中定位并处理单条记录。它实际上是一个...

    java调用oracle存储过程(游标)相关

    总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。

    oracle存储过程学习经典入门

    Oracle 存储过程的基础知识包括了解 Oracle 存储过程的基本语法、数据类型、变量声明、控制语句、循环语句、异常处理等方面的知识。 Oracle 存储过程的基本语法 Oracle 存储过程的基本语法主要包括 CREATE ...

    Oracle存储过程返回结果集

    本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...

    利用游标返回结果集的的例子(Oracle 存储过程).doc

    在Java编程中,我们可以使用JDBC(Java Database Connectivity)来调用这些Oracle存储过程。在提供的Java代码示例中,我们首先加载Oracle的JDBC驱动,然后建立到数据库的连接。这里使用了`CallableStatement`来执行...

    sql server和oracle的存储过程、游标示例

    Oracle的游标处理方式类似,但语法稍有差异: ```sql DECLARE vCustomerId Customers.CustomerId%TYPE; CURSOR MyCursor IS SELECT CustomerId FROM Customers; BEGIN OPEN MyCursor; LOOP FETCH MyCursor ...

    Oracle_的存储过程及游标

    Oracle的存储过程是数据库中一组预编译的SQL语句,它们封装在一起,形成一个可重用的单元,便于执行复杂的业务逻辑。...在实际开发中,应根据需求合理选择使用函数或存储过程,并灵活运用游标处理复杂查询和结果集。

Global site tag (gtag.js) - Google Analytics