- 浏览: 589395 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (214)
- javaweb学习 (20)
- 算法 (7)
- oracle数据库 (18)
- PHP学习 (3)
- mysql数据库 (8)
- css (9)
- ajax (2)
- it生活 (1)
- 数据结构 (2)
- jsp (1)
- 设计模式 (3)
- struts1 (0)
- struts2 (0)
- spring (6)
- hibernate (2)
- tomcat (2)
- xml (0)
- javascript (16)
- java基础 (19)
- ASP.基础 (1)
- 非技术 (8)
- 女人的反常行为,女人爱哭,鲜花,爱,男人,电话,闺蜜,恋爱 (1)
- 计算机 (4)
- 互联网新闻 (1)
- 面试题 (1)
- c++ (1)
- 浏览器 (1)
- MyEclipse (0)
- 关系数据库 (1)
- 开发工具 (2)
- HTTP协议 (2)
- oracle性能优化 (1)
- java性能优化 (1)
- android (0)
- jquery (2)
- jdbc (2)
- 计算机系统 (1)
- linux (22)
- 网络安全 (1)
- java架构 (2)
- 软件工具 (1)
- nginx (4)
- chrome (1)
- SVN (1)
- jetty (1)
- 研发管理 (4)
- hadoop (3)
- eclipse (2)
- JSON (3)
- mysql (14)
- restful (1)
- vbox (1)
- maven (3)
- netty (1)
- Web前端 (1)
- HTML (1)
- 设计 (1)
- Redis (1)
- cassandra (1)
最新评论
-
itlang01:
推荐mybatis插件https://github.com/y ...
mysql设置修改时间,更新记录当前时间 -
longen2011:
客户端可以发送包含“Content-Encoding: gzi ...
HTTP消息头详细介绍 -
Tiro_Li:
很抱歉你指出了我博文中的错误,这个问题是由于maven-ar ...
mvn构建web项目异常处理 -
chen_lian:
似乎有点问题的是如果 输入 000009能够验证通过
js验证输入的值是否钱数 -
nicegege:
起来Rails的一个五颜六色的羽毛帽,现在是在地面上。 Twi ...
oracle数据库导出命令EXP
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语句写多了,你自然而然的想用存储过程去应对数据应用操作。
发表评论
-
数据库设计原则(转载)
2013-09-04 15:28 16151. 原始单据与实体之间的关系 可以是一对一、一对多、多 ... -
Oracle同义词创建及其作用
2013-08-21 10:24 965Oracle的同义词(synonyms ... -
powerDesigner连接oracle10g报ORA-12154: TNS: 无法解析指定的连接标识符
2013-06-04 17:38 4278powerDesigner12.5安装完毕之后,建立syc ... -
连接oralce远程服务器,修改表字段长度
2013-04-26 11:22 19281.系统监控人员说系统 ... -
[转]ORACLE 体系结构
2012-12-09 09:16 694很多人大楷都是从SQL Server转过来的,可能是受MS的影 ... -
[转]模糊查询
2012-12-06 14:35 998SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查 ... -
oracle数据库日期总结
2012-03-23 17:21 2340oracle数据库对日 ... -
oracle序列使用
2011-11-03 08:57 11321.oracle的序列为我们提供每一条记录的唯一编号,最适合给 ... -
Oracle数据库管理员经常使用的表和视图
2011-10-26 10:12 10021.dba_开头 dba_users 数据 ... -
oracle用户管理
2011-10-14 16:30 0数据是每一个公司的最重要的机密,而现在的企业把大量的数据存放在 ... -
Toad的sysdba身份登录问题
2011-10-13 09:58 13461.oracle10g安装了toad数据库管理工具,用户用sy ... -
oracle触发器
2011-07-29 14:36 1241触发器是特定事件出 ... -
求每个部门的平均工资
2011-07-26 17:27 1818查询每个部门的平均工资(而且显示部门名称)。 1* se ... -
oracle的exists用法总结
2011-07-26 17:25 22434exists表示()内子查询语句返回结果不为空说明where条 ... -
oracle的clob,blob,noclob数据类型的初探
2011-07-25 10:41 01.从表wfprocessdefine中查找processde ... -
Oracle数据库中数据导入导出imp/exp命令
2011-07-14 08:47 0ss -
oracle数据库的导入命令IMP
2011-07-14 08:44 1555Import: Release 10.2.0.1.0 - Pr ... -
oracle数据库导出命令EXP
2011-07-14 08:27 2677Export: Release 10.2.0.1.0 - ... -
oracle数据库的job是啥东西?
2011-04-16 23:17 1762在SQL*Plus中可以处理三种类型的命令:SQL语句、P ... -
oracle数据库缓存介绍
2011-04-16 23:02 1267oracle的db_buffer_pool由三部分组成:buf ...
相关推荐
Oracle存储过程总结,Oracle存储过程总结,Oracle存储过程总结。
根据提供的文件信息,我们可以归纳出以下Oracle存储过程的相关知识点: ### Oracle存储过程基础概念 ...以上是基于提供的部分内容对Oracle存储过程进行的总结,包含了从基础概念到具体应用实例的全面解析。
Oracle 存储过程总结 Oracle 存储过程是数据库系统中的一种重要组件,它可以将复杂的业务逻辑封装在一起,提高数据库系统的性能和可维护性。本篇文章将对 Oracle 存储过程进行总结,包括创建存储过程、变量、游标、...
本文将全面总结如何使用Java与Oracle存储过程进行交互。 首先,理解Oracle存储过程的基本概念。存储过程是预编译的SQL语句集合,存储在数据库中,可以接受参数、执行一系列操作并返回结果。它们提高了性能,减少了...
} } catch (SQLException ex1) { } } }}```总结与注意事项调用Oracle存储过程在Java中主要使用`CallableStatement`,通过占位符`?`来代表参数,并使用`setXXX`方法设置IN参数,`registerOutParameter`注册OUT或IN...
下面是 Oracle 存储过程的一些重要知识点总结。 1. 创建存储过程 创建存储过程的基本语法为: ```sql CREATE OR REPLACE PROCEDURE 过程名(参数1 IN 类型, 参数2 OUT 类型) AS -- 声明变量 BEGIN -- 存储过程的...
以下是关于如何使用Java调用Oracle存储过程的总结: 首先,我们来看无返回值的存储过程。创建一个名为`TESTA`的Oracle存储过程,它接受两个VARCHAR2类型的输入参数`PARA1`和`PARA2`,并将它们插入到`HYQ.B_ID`表中...
总结来说,解锁Oracle存储过程的过程涉及到识别锁定会话、查询锁定详情,并最终终止锁定会话以释放锁定。这一系列操作需要对Oracle数据库的系统视图有深入的理解,同时也需要具备一定的数据库管理经验。通过遵循上述...
### 使用Java调用Oracle存储过程知识点总结 #### 一、无返回值的存储过程 **存储过程定义**: ```sql CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2, PARA2 IN VARCHAR2) AS BEGIN INSERT INTO HYQ.B_ID ...
总结来说,Java调用Oracle存储过程涉及到的关键步骤包括:加载JDBC驱动,建立数据库连接,创建`CallableStatement`对象,设置输入参数,注册输出参数,执行存储过程,以及处理返回值和关闭资源。理解这些步骤对于...
总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...
Oracle存储过程超详细使用手册 Oracle存储过程总结
总结来说,Java调用Oracle存储过程主要涉及以下步骤: 1. 加载Oracle驱动(`Class.forName`)。 2. 建立数据库连接(`DriverManager.getConnection`)。 3. 创建`CallableStatement`对象,设置参数(`setString`或`...
七、 用 Java 调用 Oracle 存储过程总结 用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用...
### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...
**用Java调用Oracle存储过程总结** 1. 无返回值的存储过程:使用CallableStatement的`execute()`方法执行。 2. 有返回值的存储过程(非列表):设置输出参数,调用`execute()`,然后从输出参数获取结果。 3. 返回...
### Oracle存储过程批量提交知识点详解 在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保...
总结来说,Oracle存储过程通过`OUT`参数和`SYS_REFCURSOR`类型能够方便地返回结果集。在Java应用中,我们可以使用JDBC的`CallableStatement`和`ResultSet`来调用存储过程并处理返回的结果。这种方式在处理大量数据或...