Oracle一个简单的存储过程
/*定义过程参数*/ create or replace procedure snowlucky.graduateprocess( tempzhengzhi in snowlucky.graduate.zhengzhi%type, tempyingyu in snowlucky.graduate.yingyu%type, tempzhuanye1 in snowlucky.graduate.zhuanye1%type, tempzhuanye2 in snowlucky.graduate.zhuanye2%type, tempzhuanye3 in snowlucky.graduate.zhuanye3%type, temptotalscore in snowlucky.result.totalscore%type) as /*定义graduaterecord为记录型变量,临时存放通过游标从graduate数据表中提取的记录*/ graduaterecord snowlucky.graduate%rowtype; /*定义graduatetotalscore为数值型变量,统计总分*/ graduatetotalscore snowlucky.result.totalscore%type; /*定义graduateflag为字符型变量,根据结果放入“落选”或“录取”,然后写入数据表result*/ graduateflag varchar2(4); /*定义游标graduatecursor,存放的是所有的graduate数据表中的记录*/ cursor graduatecursor is select * from snowlucky.graduate; /*定义异常处理errormessage*/ errormessage exception; /*开始执行*/ begin /*打开游标*/ open graduatecursor; /*如果游标没有数据,激活异常处理*/ if graduatecursor%notfound then raise errormessage; end if; /*游标有数据,指针指向第一条记录,每执行fetch命令,就自动下移,循环执行到记录提取完毕为止*/ loop fetch graduatecursor into graduaterecord; /*计算总分*/ graduatetotalscore:=graduaterecord.yingyu+graduaterecord.zhengzhi+graduaterecord.zhuanye1+graduaterecord.zhuanye2+graduaterecord.zhuanye3; /*判断单科和总分是否满足录取要求,若满足,graduateflag变量值为“录取”,否则为“落选”*/ if (graduaterecord.yingyu>=tempyingyu and graduaterecord.zhengzhi>=tempzhengzhi and graduaterecord.zhuanye1>=tempzhuanye1 and graduaterecord.zhuanye2>=tempzhuanye2 and graduaterecord.zhuanye3>=tempzhuanye3 and graduatetotalscore>=temptotalscore) then graduateflag:='录取'; else graduateflag:='落选'; end if; /*当游标数据提取完毕后,退出循环”*/ exit when graduatecursor%notfound; /*向结果数据表result中插入处理后的数据*/ insert into snowlucky.result(bh,xm,lb,zhengzhi,yingyu,zhuanye1,zhuanye2,zhuanye3,totalscore,flag) values(graduaterecord.bh,graduaterecord.xm,graduaterecord.lb,graduaterecord.zhengzhi,graduaterecord.yingyu,graduaterecord.zhuanye1,graduaterecord.zhuanye2,graduaterecord.zhuanye3,graduatetotalscore,graduateflag); end loop; /*关闭游标*/ close graduatecursor; /*提交结果*/ commit; /*异常处理,提示错误信息*/ exception when errormessage then dbms_output.put_line('无法打开数据表'); /*程序执行结束”*/ end; /*主程序mainprocess设计*/ /*定义6个入口变量,分别对应graduate数据表中的专业课和总分分数线*/ declare score1 number(4,1); score2 number(4,1); score3 number(4,1); score4 number(4,1); score5 number(4,1); scoretotal number(5,1); /*将分数线赋值,在这里修改各值就代表不同的分数线*/ begin score1:=50; score2:=56; score3:=60; score4:=62; score5:=64; scoretotal:=325; /*调用处理过程*/ snowlucky.graduateprocess(score1,score2,score3,score4,score5,scoretotal); end;
发表评论
-
oracle中死锁的处理
2010-05-25 12:16 7601、临时表 WITH TMPTABLE AS (sel ... -
oracle用merge更新表中数据
2009-11-16 18:58 2799Merge into是oracle从9i开始增加的一个语句,从 ... -
oracle中char(20)转换成varchar2(10)
2009-11-03 14:14 4715说明:mw_app.a表中字段b ,类型char(20),原来 ... -
给表或表中字段注释
2009-10-29 11:00 7931、给表添加注释 comment on table MW_S ... -
Oracle中将一个表中的字段值复制到另一个表的字段中
2009-10-22 19:29 5473说明: 1、mw_app.mwt_ud_pd_sb_r ... -
Oracle 创建序列号
2009-09-15 12:56 2972Oracle 创建序列号 1. 创建序列号里各参数 ... -
Oracle 多行转列函数
2009-09-13 20:36 4886Oracle中使用WMSYS.WM_CONCAT函数进行多行转 ... -
Oracle 单行函数
2009-09-13 20:15 1054三、Oracle 单行函数 ... -
Oracle 限制选择行
2009-09-13 20:11 733二、Oracle 限制选择行 ... -
Oracle选择行
2009-09-13 20:08 977Oracle选择行 一、选择行 1. 简单的SELE ... -
Oracle SQL性能优化
2009-09-13 17:49 551Oracle SQL语句的性能优化 (1)选择最 ...
相关推荐
oracle的一个简单存储过程实例,有原文件和使用说明。
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
oracle 的函数、存储过程、游标、简单实例 oracle常用语句oracle 的函数、存储过程、游标、简单实例 oracle常用语句
该文档详细讲解Oracle在存储过程中如何利用Out参数返回一个结果集。示例简单易懂。
2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外...
Oracle存储过程基础知识; Oracle存储过程的基本语法; 用Java调用Oracle存储过程总结; 在存储过程中做简单动态查询; Oracle存储过程调用Java方法; Oracle高效分页存储过程实例
润乾报表简单调用oracle存储过程的说明文档,参照文档可创建可执行案例
在分页存储过程中,主要理解了变量的动态赋值和输入输出参数的使用就非常简单了 下面为调用方法: var c_Preccount number; var c_Ppagecount number; var c_cur refcursor; exec proc_SpPag(1,'SELECT * FROM T_...
oracle触发器调用存储过程,最简单的例子适用于初学者
ORACLE存储过程 学习源码,从简单到深奥,一共有30个文件。
C#调用oracle存储过程 最简单的实例C#调用oracle存储过程 最简单的实例
功能说明 写好oracle的连接字符串和查询语句,调用程序中的方法可以很方便的实现分页功能。...对存储过程做了简单的修改方法程序的调用。 效率不是很高,如有高人写出很厉害的分页存储过程,希望您与大家分享。
这是一个简单的oracle代码,可进行参考
oracle存储过程加密,只是一个简单的说明希望能办忙。
Oracle通用数据库存储过程代码--高效分页存储过程,只需简单的修改即可使用,方便易懂!
一个简单的oracle存储过程 一个简单的oracle存储过程 一个简单的oracle存储过程 一个简单的oracle存储过程 一个简单的oracle存储过程
oracle学习中存储过程常用技巧,简单易懂。适合初学者
Oracle技术_5分钟会用存储过程_存储过程简单实例 包括建表及初始化数据,直接运行就可以用 包含循环、条件、增改查、参数传入、变量赋值、java调用等 http://blog.csdn.net/ooppookid/article/details/41206963
这个文档对初学者来说是非常实用的,简单思路清晰,这里包括了 定义存储过程、调用带有输入输出参数的存储过程、存储过程异常处理、存储过程中事务处理的例子,很直观,