`
nicegege
  • 浏览: 591160 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle存储过程总结

 
阅读更多

1.oracle的存储过程一般用于处理某一个具体功能而产生的。在存储过程中方便的包含多个sql语句,还可以包括更复杂的游标,逻辑判断,向sql/plus输出你想要的信息等。总之存储过程很像java里面类中的方法。可以是无参,也可以有输入参数,输出参数。

存储过程的格式:

create or replace procedure 名称(arg1 in varchar2,arg out varchar2)  is

declare

声明变量

如:v_id int;

      v_str varchar2(40);

      v_empno emp.empno%type;

      v_emp  emp%rowtype;

      cursor Mycursor is slect * from emp;

begin

 具体的逻辑处理

 

end;

执行的时候:

在sql/plus中:exec 存储过程名;

1.例子:创建一个存储过程,接收一个编号,输出该员工的信息,如果没有信息提示找不到
CREATE OR REPLACE PROCEDURE myproc
 (p_empno emp.empno%type, p_emp out emp%rowtype)
IS 
BEGIN
 SELECT * INTO p_emp FROM emp WHERE empno = p_empno;
EXCEPTION
 WHEN NO_DATA_FOUND THEN
  DBMS_OUTPUT.PUT_LINE('找不到编号为' || p_empno || '的员工');
END;
/
执行
DECLARE
 v_emp emp%rowtype;
BEGIN
 myproc(7788, v_emp);
 DBMS_OUTPUT.PUT_LINE(v_emp.ename);
END;

2.例子:jd_sqd_fk_detail表包含用户支付审核单的保存信息,支付单号fk_zfdh对应多条审核记录,其中key_id最大的记录时最新的记录。用存储过程操作数据,找到有相同fk_zfdh的记录中最大的key_id,删除其余的[小于max(key_id)]的记录。

create or replace procedure DelNotMaxKey is
v_keyid int;
cursor Mycursor is select fk_zfdh from jd_sqd_fk_detail  group by fk_zfdh having count(*) >1;
item jd_sqd_fk_detail.fk_zfdh%type;
begin
 open Mycursor;
 loop
  exit when Mycursor %notfound;
fetch Mycursor  into item;
 select max(key_id) into v_keyid from jd_sqd_fk_detail where fk_zfdh=item;
 delete from  jd_sqd_fk_detail where fk_zfdh=item and key_id!=v_keyid;
end loop;
 close Mycursor;
end;
过程已创建。

SQL> exec  DelNotMaxKey();

PL/SQL 过程已成功完成。

总结:oracle存储过程很方便的去操作复杂的逻辑,达到简化操作,实现目的。可以说是比写sql操作数据来的方便简单。但是存储过程学习的难度还是比较高的,从简单的开始到复杂的,慢慢积累就会掌握什么时候用sql语句操作,什么时候用存储过程。总之sql语句写多了,你自然而然的想用存储过程去应对数据应用操作。

分享到:
评论

相关推荐

    Oracle存储过程总结

    Oracle存储过程总结,Oracle存储过程总结,Oracle存储过程总结。

    *oracle存储过程总结*oracle存储过程总结*

    根据提供的文件信息,我们可以归纳出以下Oracle存储过程的相关知识点: ### Oracle存储过程基础概念 ...以上是基于提供的部分内容对Oracle存储过程进行的总结,包含了从基础概念到具体应用实例的全面解析。

    oracle存储过程总结.doc

    Oracle 存储过程总结 Oracle 存储过程是数据库系统中的一种重要组件,它可以将复杂的业务逻辑封装在一起,提高数据库系统的性能和可维护性。本篇文章将对 Oracle 存储过程进行总结,包括创建存储过程、变量、游标、...

    Java调用oracle存储过程总结

    本文将全面总结如何使用Java与Oracle存储过程进行交互。 首先,理解Oracle存储过程的基本概念。存储过程是预编译的SQL语句集合,存储在数据库中,可以接受参数、执行一系列操作并返回结果。它们提高了性能,减少了...

    用java调用oracle存储过程总结

    } } catch (SQLException ex1) { } } }}```总结与注意事项调用Oracle存储过程在Java中主要使用`CallableStatement`,通过占位符`?`来代表参数,并使用`setXXX`方法设置IN参数,`registerOutParameter`注册OUT或IN...

    oracle存储过程总结-函数-语法-大全-详解.docx

    下面是 Oracle 存储过程的一些重要知识点总结。 1. 创建存储过程 创建存储过程的基本语法为: ```sql CREATE OR REPLACE PROCEDURE 过程名(参数1 IN 类型, 参数2 OUT 类型) AS -- 声明变量 BEGIN -- 存储过程的...

    用java调用oracle存储过程总结.pdf

    以下是关于如何使用Java调用Oracle存储过程的总结: 首先,我们来看无返回值的存储过程。创建一个名为`TESTA`的Oracle存储过程,它接受两个VARCHAR2类型的输入参数`PARA1`和`PARA2`,并将它们插入到`HYQ.B_ID`表中...

    oracle存储过程解锁

    总结来说,解锁Oracle存储过程的过程涉及到识别锁定会话、查询锁定详情,并最终终止锁定会话以释放锁定。这一系列操作需要对Oracle数据库的系统视图有深入的理解,同时也需要具备一定的数据库管理经验。通过遵循上述...

    用java调用oracle存储过程总结.docx

    ### 使用Java调用Oracle存储过程知识点总结 #### 一、无返回值的存储过程 **存储过程定义**: ```sql CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2, PARA2 IN VARCHAR2) AS BEGIN INSERT INTO HYQ.B_ID ...

    用java调用oracle存储过程总结文.pdf

    总结来说,Java调用Oracle存储过程涉及到的关键步骤包括:加载JDBC驱动,建立数据库连接,创建`CallableStatement`对象,设置输入参数,注册输出参数,执行存储过程,以及处理返回值和关闭资源。理解这些步骤对于...

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...

    Oracle存储过程超详细使用手册

    Oracle存储过程超详细使用手册 Oracle存储过程总结

    用java调用oracle存储过程总结[文].pdf

    总结来说,Java调用Oracle存储过程主要涉及以下步骤: 1. 加载Oracle驱动(`Class.forName`)。 2. 建立数据库连接(`DriverManager.getConnection`)。 3. 创建`CallableStatement`对象,设置参数(`setString`或`...

    Oracle PlSql 存储过程

    七、 用 Java 调用 Oracle 存储过程总结 用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用...

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    Oracle+PlSql存储过程

    **用Java调用Oracle存储过程总结** 1. 无返回值的存储过程:使用CallableStatement的`execute()`方法执行。 2. 有返回值的存储过程(非列表):设置输出参数,调用`execute()`,然后从输出参数获取结果。 3. 返回...

    oracle 存储过程批量提交

    ### Oracle存储过程批量提交知识点详解 在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保...

    Oracle存储过程返回结果集

    总结来说,Oracle存储过程通过`OUT`参数和`SYS_REFCURSOR`类型能够方便地返回结果集。在Java应用中,我们可以使用JDBC的`CallableStatement`和`ResultSet`来调用存储过程并处理返回的结果。这种方式在处理大量数据或...

Global site tag (gtag.js) - Google Analytics