存储过程

刚开始我接触到数据库的时候,感觉存储过程是很难的,但是当你看完我给你列举的例子,你就能够轻松的掌握存储过程的创建和使用了。

存储过程是在大型数据库系统中存储过程在数据库中经过第一次编译后就不需要再次编译,用户通过指定存储过程的名字并给出参数来执行

例子:

查询计算机系学生成绩,列出学生姓名、课程名、成绩

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中存储过程的使用的更多相关文章

  1. Oracle中存储过程传入表名学习

    Oracle中存储过程传入表名: 一.动态清除该表的数据 create or replace procedure p_deletetable(i_tableName in varchar2)  as  ...

  2. oracle中存储过程详解

    oracle中存储过程的使用 过程是指用于执行特定操作的PL/SQL块.如果客户应用经常需要执行特定操作,那么可以考虑基于这些操作建立过程.通过使用过程,不仅可以简化客户应用的开发和维护,而且可以提高 ...

  3. 查看Oracle中存储过程长时间被卡住的原因

    1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...

  4. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  5. Oracle中存储过程与函数的区别

    Oracle 获取信息一般用function 修改数据用存储过程(需要执行commit命令)

  6. [转]Oracle中存储过程和函数的区别

    原文地址:http://blog.csdn.net/tender001/article/details/8066203 存储过程和函数: 例子: //创建过程 create or replace pr ...

  7. oracle中存储过程把表导出txt文件

    create or replace directory MY_DIR as 'D:\MY_DIR\'; grant read,write on directory MY_DIR to adm; sel ...

  8. oracle中带参存储过程的使用

    Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: create or replace procedure out_test(v_user in emp.user_name% ...

  9. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

随机推荐

  1. Android实例-消息框(XE8+小米2)

    方法一支持. 方法二与方法三都是三方单元,功能相同. 方法4与方法5报错,提示平台不支持. 第三方单元一: unit Android.JNI.Toast; // Java bridge class i ...

  2. 多年的.NET开发,也只学会了这么几招

    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了   随着工作年龄逐渐增加,身边的重担也越来越多.以前可以在公司加班到晚上10点,现在不行了.以前可以通宵 ...

  3. 认识CoreData-高级用法

    来源:伯乐在线专栏作者 - 刘小壮 链接:http://ios.jobbole.com/87293/ 点击 → 了解如何加入专栏作者 认识CoreData-初识CoreData 认识CoreData- ...

  4. 使用openssl库实现des,3des加密

    原文地址: 使用openssl库实现des,3des加密 主要是调整了一下格式,以及一些变量的类型,以解决在VC2008下无法编译通过的问题. #include <stdio.h> #in ...

  5. HDU 1718 Rank counting sort解法

    本题是利用counting sort的思想去解题. 注意本题,好像利用直接排序,然后查找rank是会直接被判WA的.奇怪的推断系统. 由于分数值的范围是0到100,很小,而student 号码又很大, ...

  6. HDU 5476 Explore Track of Point 数学平几

    Explore Track of Point Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  7. 【Android开发经验】使用Ant批量打包Android应用全然指南

    本文章由Socks完毕.博客地址:http://blog.csdn.net/zhaokaiqiang1992 转载请说明. 折腾了一下午.百度了一下午,最终实现了使用Ant对Android应用的批量打 ...

  8. RHEL6中ulimit的nproc限制

    http://blog.csdn.net/kumu_linux/article/details/8301760 当前shell下更改用户可打开进程数 修改limits.conf配置文件生效 [root ...

  9. node.js 浏览器中输出 “hello world”

    前段时间花了几个小时,在command面板输出了“hello world”,今天就来说说怎么在浏览器上输入一个地址,然后页面输出“hello world”. 首先要搭建一个基础的 HTTP 服务器 一 ...

  10. php中global和$GLOBALS[]的分析之一

    PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖       这可能引起一些问题,有些人可能漫不经心的改变一个全局变量.PHP 中全局变量在函数 ...