- 浏览: 821889 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Oracle存储过程总结
1、创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline('The input date is:'||to_date(workDate,'yyyy-mm-dd')); end test; 2、变量赋值 变量名 := 值; E.g: create or replace procedure test(workDate in Date) is x number(4,2); begin x := 1; end test; 3、判断语句: if 比较式 then begin end; end if; E.g create or replace procedure test(x in number) is begin if x >0 then begin x := 0 - x; end; end if; if x = 0 then begin x: = 1; end; end if; end test; 4、For 循环 For ... in ... LOOP --执行语句 end LOOP; (1)循环遍历游标 create or replace procedure test() as Cursor cursor is select name from student; name varchar(20); begin for name in cursor LOOP begin dbms_output.putline(name); end; end LOOP; end test; (2)循环遍历数组 create or replace procedure test(varArray in myPackage.TestArray) as --(输入参数varArray 是自定义的数组类型,定义方式见标题6) i number; begin i := 1; --存储过程数组是起始位置是从1开始的,与 java、C、C++等语言不同。因为在Oracle中本是没有数组的概念的,数组其实就是一张 --表(Table),每个数组元素就是表中的一个记录,所以遍历数组时就相当于从表中的第一条记录开始遍历 for i in 1..varArray.count LOOP dbms_output.putline('The No.'|| i || 'record in varArray is:'||varArray(i)); end LOOP; end test; 5、While 循环 while 条件语句 LOOP begin end; end LOOP; E.g create or replace procedure test(i in number) as begin while i < 10 LOOP begin i:= i + 1; end; end LOOP; end test; 6、数组 首先明确一个概念:Oracle中本是没有数组的概念的,数组其实就是一张表(Table),每个数组元素就是表中的一个记录。 使用数组时,用户可以使用Oracle已经定义好的数组类型,或可根据自己的需要定义数组类型。 (1)使用Oracle自带的数组类型 x array; --使用时需要需要进行初始化 e.g: create or replace procedure test(y out array) is x array; begin x := new array(); y := x; end test; (2)自定义的数组类型 (自定义数据类型时,建议通过创建Package的方式实现,以便于管理) E.g (自定义使用参见标题4.2) create or replace package myPackage is -- Public type declarations type info is record( name varchar(20), y number); type TestArray is table of info index by binary_integer; --此处声明了一个TestArray的类型数据,其实其为一张存储Info数据类型的Table而已,及TestArray 就是一张表,有两个字段,一个是 name,一个是y。需要注意的是此处使用了Index by binary_integer 编制该Table的索引项,也可以不写,直接写成:type TestArray is table of info,如果不写的话使用数组时就需要进行初始化:varArray myPackage.TestArray; varArray := new myPackage.TestArray(); end TestArray; 7.游标的使用 Oracle中Cursor是非常有用的,用于遍历临时表中的查询结果。其相关方法和属性也很多,现仅就常用的用法做一二介绍: (1)Cursor型游标(不能用于参数传递) create or replace procedure test() is cusor_1 Cursor is select std_name from student where ...; --Cursor的使用方式1 cursor_2 Cursor; begin select class_name into cursor_2 from class where ...; --Cursor的使用方式2 可使用For x in cursor LOOP .... end LOOP; 来实现对Cursor的遍历 end test; (2)SYS_REFCURSOR型游标,该游标是Oracle以预先定义的游标,可作出参数进行传递 create or replace procedure test(rsCursor out SYS_REFCURSOR) is cursor SYS_REFCURSOR; name varhcar(20); begin OPEN cursor FOR select name from student where ... --SYS_REFCURSOR只能通过OPEN方法来打开和赋值 LOOP fetch cursor into name --SYS_REFCURSOR只能通过fetch into来打开和遍历 exit when cursor%NOTFOUND; --SYS_REFCURSOR中可使用三个状态属性: ---%NOTFOUND(未找到记录信息) %FOUND(找到记录信息) ---%ROWCOUNT(然后当前游标所指向的行位置) dbms_output.putline(name); end LOOP; rsCursor := cursor; end test; 下面写一个简单的例子来对以上所说的存储过程的用法做一个应用: 现假设存在两张表,一张是学生成绩表(studnet),字段为:stdId,math,article,language,music,sport,total,average,step 一张是学生课外成绩表(out_school),字段为:stdId,parctice,comment 通过存储过程自动计算出每位学生的总成绩和平均成绩,同时,如果学生在课外课程中获得的评价为A,就在总成绩上加 20分。 create or replace procedure autocomputer(step in number) is rsCursor SYS_REFCURSOR; commentArray myPackage.myArray; math number; article number; language number; music number; sport number; total number; average number; stdId varchar(30); record myPackage.stdInfo; i number; begin i := 1; get_comment(commentArray); --调用名为get_comment()的存储过程获取学生课外评分信息 OPEN rsCursor for select stdId,math,article,language,music,sport from student t where t.step = step; LOOP fetch rsCursor into stdId,math,article,language,music,sport; exit when rsCursor%NOTFOUND; total := math + article + language + music + sport; for i in 1..commentArray.count LOOP record := commentArray(i); if stdId = record.stdId then begin if record.comment = 'A' then begin total := total + 20; go to next; --使用go to跳出for循环 end; end if; end; end if; end LOOP; <<continue>> average := total / 5; update student t set t.total=total and t.average = average where t.stdId = stdId; end LOOP; end; end autocomputer; --取得学生评论信息的存储过程 create or replace procedure get_comment(commentArray out myPackage.myArray) is rs SYS_REFCURSOR; record myPackage.stdInfo; stdId varchar(30); comment varchar(1); i number; begin open rs for select stdId,comment from out_school i := 1; LOOP fetch rs into stdId,comment; exit when rs%NOTFOUND; record.stdId := stdId; record.comment := comment; recommentArray(i) := record; i:=i + 1; end LOOP; end get_comment; --定义数组类型myArray create or replace package myPackage is begin type stdInfo is record(stdId varchar(30),comment varchar(1)); type myArray is table of stdInfo index by binary_integer; end myPackage;
发表评论
-
优化Oracle数据库性能
2010-09-29 19:55 1123优化Oracle数据库性能 ... -
Oracle 体系结构介绍
2010-09-25 08:14 939Oracle 体系结构介绍 1、 ORACLE 实 ... -
Oracle sequence序列的用法
2010-09-24 09:08 1576Oracle sequence序列的用法 orac ... -
用java调用oracle存储过程总结
2010-09-24 08:51 1749用java调用oracle存储过程 ... -
Oracle创建索引要做到的几个方面
2010-09-24 08:45 1224Oracle创建索引要做到的 ... -
数据表设计原则
2010-09-24 08:35 998数据表设计原则 1)不 ... -
Oracle 的物化视图
2010-09-24 08:25 1466Oracle 的物化视图 Oracl ... -
物化视图相关
2010-09-24 08:23 1118物化视图 物化视图 ... -
Oracle数据库设计——定义约束 主键
2010-09-24 08:19 3454Oracle数据库设计——定义约束 主键 声明约束 主 ... -
oracle主键的设置
2010-09-24 08:16 1525oracle主键的设置 四种 ... -
oracle索引 约束简单总结
2010-09-24 08:09 1043oracle索引 约束简单总结 什么时候应该建立索引? ... -
oracle中各种索引的总结
2010-09-24 08:07 1375oracle中各种索引的总结 索引在ORACLE S ... -
Oracle的索引总结
2010-09-24 08:05 1088Oracle的索引总结 1. 索引与日志 ... -
Oracle DBA常用命令总结
2010-09-23 19:56 1305Oracle DBA常用命令总结 //创建临时表空间 ... -
Oracle中UNION 与UNION ALL的学习
2010-09-16 15:20 1369Oracle中UNION 与UNION ALL的学习 1、 ... -
java连接oracle的二种方法
2010-09-11 09:59 1747建立和分析java程序和 ... -
oracle 10g驱动包下载
2010-09-11 09:58 7644oracle 10g驱动包下载 我 ... -
Oracle PL-SQL中 左连接和右连接用法
2010-09-08 20:24 2460数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配的 ... -
oracle相关
2010-09-07 15:06 846oracle相关知识点 -
oracle条件查询:case和decode使用实例
2010-09-06 20:23 2063oracle条件查询:case和decode使用实例 分别 ...
相关推荐
根据提供的文件信息,我们可以归纳出以下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`来调用存储过程并处理返回的结果。这种方式在处理大量数据或...