oracle中存储过程的使用
存储过程
刚开始我接触到数据库的时候,感觉存储过程是很难的,但是当你看完我给你列举的例子,你就能够轻松的掌握存储过程的创建和使用了。
存储过程是在大型数据库系统中存储过程在数据库中经过第一次编译后就不需要再次编译,用户通过指定存储过程的名字并给出参数来执行
例子:
查询计算机系学生成绩,列出学生姓名、课程名、成绩
create procedure student_grade1
as
select sname,cname,grade
from student s join sc on s.sno=sc.cno
join course c on c,cno=sc.cno
where sdept = ‘计算机系’;
查询某个制定系学生的考试情况,列出姓名,所在系、课程名和成绩
create procedure student_grade2
@dept char(20) --参数
as
select sname,sdept,cname,grade
from student s,sc,course c
where s.sno=sc.cno and c.cno=sc.cno
and sdept = @dept
查询某个学生,某门课程的成绩,列出学生名、课程名、成绩
create procedure student_grade3
@stu_name char(10),@course_name char(20)
as
select sname,cname,grade
from student s join sc on s.sno=sc.cno
join course c on c.cno=sc.cno
where
sname = @stu_name and
cname= @course_name
调用过程用exec
exec student_grade3
可以输入指定学生和某门课程
查询某个学生某门课程的考试成绩,默认课程为数据库
create procedure student_grade4
@stu_name char(10),
@course_name char(20) = ‘数据库’
as
select sname,cname,grade
from student s join sc on s.sno=sc.cno
join course c on c.cno=sc.cno
where
sname = @stu_name and
cname= @course_name
查询指定列,指定性别的学生中年龄大于制定年龄的学生
create procedure student_grade5
@sex char(2) = ‘男’,
@age int = 20,
@dept char(20) = ‘计算机’
as
select * from student
where sex = @sex and age<@age
and sdept = @sdept
计算两个数的和
create procedure sum
@var1 int ,var2 int,var3 int output
as
var3 = var1+var2
统计制定课程的平均成绩,并将统计结果用输出参数返回
create procedure avggrade
@cname char(20),
@avg_grade int output
as
select @avg_grade = avggrade
from sc join course c on c.cno=sc.cno
where cname = @cname
将指定课程的学分加2分
create procedure udgrade
@cname char(20)
as
update course set credit = credit+2
where cname = @cname
oracle中存储过程的使用的更多相关文章
- Oracle中存储过程传入表名学习
Oracle中存储过程传入表名: 一.动态清除该表的数据 create or replace procedure p_deletetable(i_tableName in varchar2) as ...
- oracle中存储过程详解
oracle中存储过程的使用 过程是指用于执行特定操作的PL/SQL块.如果客户应用经常需要执行特定操作,那么可以考虑基于这些操作建立过程.通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高 ...
- 查看Oracle中存储过程长时间被卡住的原因
1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...
- oracle中存储过程中调用存储过程
存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...
- Oracle中存储过程与函数的区别
Oracle 获取信息一般用function 修改数据用存储过程(需要执行commit命令)
- [转]Oracle中存储过程和函数的区别
原文地址:http://blog.csdn.net/tender001/article/details/8066203 存储过程和函数: 例子: //创建过程 create or replace pr ...
- oracle中存储过程把表导出txt文件
create or replace directory MY_DIR as 'D:\MY_DIR\'; grant read,write on directory MY_DIR to adm; sel ...
- oracle中带参存储过程的使用
Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: create or replace procedure out_test(v_user in emp.user_name% ...
- oracle中函数和存储过程的区别和联系【转载竹沥半夏】
oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...
随机推荐
- Vim Skills——Windows利用Vundle和Github进行Vim配置和插件的同步
OS:Windows Vim安装完成之后,目录如下 vim73:vim运行时所需的文件,对应目录为$VIMRUNTIME变量 vimfiles:第三方的文件,对应目录为$VIM/vimfiles _v ...
- 关于 JavaScript 数据类型判断
在 JavaScript 中,有 undefined.null.number.string.boolean 五种基本数据类型,另外,有一种复杂数据类型 object ,类似于 C# 中值类型.引用类型 ...
- CentOS 下SSH无密码登录的配置
CentOS 下SSH无密码登录的配置 最近学习Hadoop.它要求各节点之间通过SSH无密码登录,配置SSH的时候费了一番功夫,记录下来,以备忘. 配置SSH无密码登录需要3步: 1.生成公钥和私钥 ...
- linux中文输入法
rpm方式.在安装盘上已经有各种语言包了.我们仅仅须要找到他们,并安装就能够了. 中文的是 fonts-chinese-3.02-9.6.el5.noarch.rpm fonts-ISO8859-2- ...
- Oracle 11g系统自己主动收集统计信息的一些知识
在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10 ...
- Javascript call与apply记录
[注]:记录自己对javascript中call与apply的见解 总会有些东西会被人拿出来重复的写来写去,为何? 只是因为自己感觉不够了解,所谓好记性不如烂笔头,并且在写的同时也会或多或少的收获到一 ...
- G711
G.711就是语音模拟信号的一种非线性量化.细分有二种:G.711 a-lawand G.711 u-law.不同的国家和地方都会选取一种作为自己的标准. G.711a/u bitrate 是64kb ...
- Java,javascript,html,css的关系
内容:,就是制作者放在页面想让访问者浏览的内容 . 主要由java语言提供数据检索.更新.业务处理等. 结构:使内容更加具有逻辑性和易用性,类似于1,2级标题,正文.列表等等. HTML 表现:用于修 ...
- Hibernate: Truly Understanding the Second-Level and Query Caches--reference
I've written multiple articles here at Javalobby on the Hibernate O/R mapping tool, and they are usu ...
- C# 之 日常积累(二)
主要涉及(1)数字前补0:(2)去掉decimal类型后边无效的0相关问题. 1.数字前补0 ; ) { returnnumber.ToString(); } else { returnnumber. ...