将学生成绩score进行分段
start_score 起始分数
end_score 总分
section 分数间隔
//SUCCESS存储过程拼接
SELECT COUNT(*) AS COUNT FROM AAA WHERE SCORE >= 0 AND SCORE < 10
UNION ALL
SELECT COUNT(*) AS COUNT FROM AAA WHERE SCORE >= 10 AND SCORE < 20
UNION ALL
SELECT COUNT(*) AS COUNT FROM AAA WHERE SCORE >= 20 AND SCORE < 30
UNION ALL
SELECT COUNT(*) AS COUNT FROM AAA WHERE SCORE >= 30 AND SCORE < 40
// create package
create or replace package score_section_package is
-- Author : 罗蓉蓉
-- Created : 2013/11/16 20:40:07
-- Purpose :
-- Public type declarations
type return_cursor is ref cursor;
-- Public constant declarations
--<ConstantName> constant <Datatype> := <Value>;
-- Public variable declarations
--<VariableName> <Datatype>;
-- Public function and procedure declarations
--function <FunctionName>(<Parameter> <Datatype>) return <Datatype>;
end score_section_package;
// create produre
create or replace procedure score_section(start_score in Integer,end_score in Integer,section in Integer, p_current out score_section_package.return_cursor) is
--BY 罗蓉蓉
--tempsql varchar2(300);--用来定义sql语句
-- insertsql varchar2(800);--用来定义sql语句
--current_time varchar2(10);
--tjsj varchar2(10);
sql_score varchar2(1000);
text number;
count0 Integer;
j number;
begin
j := 1;
text :=start_score;
--count0 分数段
count0 :=mod((end_score - start_score),section);
if count0!=0 then
count0 :=1+(end_score - start_score)/section;
else
count0 :=(end_score - start_score)/section;
end if;
while j <= count0
loop
if (text+section)>end_score then
sql_score :=sql_score||'select count(*) as count from AAA where score >= '||text||' and score <= '||end_score;
else
sql_score :=sql_score||'select count(*) as count from AAA where score >= '||text||' and score < '||(text+section);
-- sql_score :=sql_score||' union all ';
end if;
--text :=start_score;
text :=text+section;
-- @
if j!=count0 then
sql_score :=sql_score||' union all ';
end if;
-- @
j := j + 1;
end loop;
open p_current for sql_score; end score_section;
//java 代码中调用存储过程
try {
Connection conn = DataAccess.getConnection();
CallableStatement cs = null;
ResultSet rs = null;
if (cs == null)
cs = conn.prepareCall("{call score_section(0,100,33,?)}");
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.execute();
rs = (ResultSet) cs.getObject(1);
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- 浏览: 86301 次
- 性别:
- 来自: 武汉
最新评论
-
贝塔ZQ:
处理excel,PageOffice插件处理的也蛮好的。可以试 ...
jxl 打印excel,样式设置 -
张海婷:
楼主方法真不错!解决了我的问题!非常感谢!
错误:No buffer space available (maximum connections reached?) -
1021082712:
当出现错误是,只需要给客户端打印简单的错误信息,所有我在act ...
java web异常处理方式总结 -
1021082712:
哈哈,我以后会改进滴,多谢提醒
oracle 成绩分段 存储过程实现 -
m124820430:
Baseservice.findflightinfos方法自己 ...
java web异常处理方式总结
相关推荐
oracle存储过程中,实现成绩分段显示人数,produce中带三个传入参数:起始分数(例如0),总分(例如100),分数间隔(例如10)。一个返回参数为游标,用来返回结果集。
### Oracle存储过程 存储过程是在数据库中预编译的一组SQL语句,用于执行复杂的业务逻辑或数据操作。它们可以接受输入参数,执行一系列数据库操作,并返回结果。在Oracle中,存储过程使用PL/SQL编写,可以在数据库...
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
ORACLE 存储过程的异步调用 本文讨论了 ORACLE 存储过程的异步调用方法,旨在解决客户端长时间等待存储过程执行的问题。主要思路是使用 DBMS_JOB 包将主处理存储过程作为任务提交到任务队列中,并通过 DBMS_PIPE 包...
oracle存储过程实现发邮件,oracle存储过程实现发邮件,oracle存储过程实现发邮件
Oracle 定时执行存储过程是一种高效的方式来执行存储过程,通过使用 Oracle 提供的 job 机制来实现。Job 机制允许开发者创建、计划和执行存储过程,实现自动化和批量处理。 Broken() 过程 Broken() 过程用于更新...
本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...
《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...
使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
以下是对“oracle存储过程解锁”这一主题的深入解析。 ### 标题:“oracle存储过程解锁” #### 解析: 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理...
执行Oracle存储过程主要涉及以下几个关键点: 1. 创建CallableStatement对象:使用Connection对象的`prepareCall()`方法创建CallableStatement实例,例如`CallableStatement cs = conn.prepareCall("{call procedure...
**一、Oracle存储过程** 存储过程是一组预编译的SQL语句和PL/SQL代码,存储在数据库服务器上,可以按需调用。存储过程的优点包括提高性能、减少网络流量、增强安全性以及实现模块化编程。 1. **创建存储过程**:...
总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...
在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`参数则允许过程向调用者返回数据。而`SYS_REFCURSOR`是Oracle提供的一种特殊类型,它允许存储过程动态地打开一个游标(即结果集)并将其作为`OUT`参数返回。 ...
oracle 批量插入存储过程,性能非常高!
本文将详细介绍如何在Java中实现对Oracle存储过程的调用,以执行增删改查(CRUD)操作。 首先,确保你已安装了Oracle JDBC驱动(如ojdbc.jar),并将它添加到Java项目的类路径中。Oracle JDBC驱动提供了与Oracle...
本文主要介绍了Oracle存储过程的概念、创建和调用方法,以及如何使用DBLink实现跨库操作。存储过程提供了强大的数据库处理能力,而DBLink则使得不同数据库实例之间的交互变得更加方便和高效。掌握这些技术对于提高...