- 1
- 0
- 约8.21千字
- 约 26页
- 2019-09-06 发布于广东
- 举报
第6章 存储过程和触发器 6.1 存储过程 在Oracle中,可以在数据库中定义子程序,这种程序块称为存储过程 (procedure)。它存放在数据字典中,可以在不同用户和应用程序之间共享,并可 实现程序的优化和重用。使用存储过程的优点是: (1) 过程在服务器端运行,执行速度快。 (2) 过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高 速缓冲存储器中调用已编译代码执行,提高了系统性能。 (3) 确保数据库的安全。可以不授权用户直接访问应用程序中的一些表,而是授 权用户执行访问这些表的过程。非表的授权用户除非通过过程,否则就不能访问 这些表。 (4) 自动完成需要预先执行的任务。过程可以在系统启动时自动执行,而不必在 系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预 先执行的任务。 6.1.1 存储过程的创建和执行 用户存储过程只能定义在当前数据库中,可以使用SQL命令语句或OEM创建存 储过程。缺省情况下,用户创建的存储过程归登录数据库的用户所拥有,DBA可 以把许可授权给其他用户。在用户的定义中不能使用下列对象创建语句: CREATE VIEW CREATE DEFAULT CREATE RULE CREATE PROCEDURE CREATE TRIGGER 6.1.1 存储过程的创建和执行 1. SQL命令创建存储过程 语法格式: CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name /*定义过程名*/ [ (parameter parameter_mode date_type , …n)] /*定义参数类型及属性*/ IS | AS BEGIN sql_statement /*PL/SQL过程体,要执行的操作*/ END procedure_name 其中: procedure_name:是过程名,必须符合标识符规则。关键字REPLACE表示在创建过程 时,如果已存在同名的过程,则重新创建。如果使用CREATE关键字,则需将原有的过程 删除后才能创建。 schema.:是指定过程属于的用户方案。 parameter:是过程的参数。参数名必须符合标识符规则,创建过程时,可以声明一个或多 个参数,执行过程时应提供相对应的参数。Parameter_mode是参数的类型,过程参数和 函数参数一样,也有3种类型,分别为IN、OUT和IN OUT。 ① IN:表示参数是输入给过程的; ② OUT:表示参数在过程中将被赋值,可以传给过程体的外部; ③ IN OUT:表示该类型的参数既可以向过程体传值,也可以在过程体中赋值。 sql_statement:代表过程体包含的PL/SQL语句。 6.1.1 存储过程的创建和执行 2. 调用存储过程 直接输入存储过程的名字就可以执行一个已定义的存储过程。 语法格式: EXEC[UTE] procedure_name[(parameter,…n)] 其中,procedure_name为要调用的存储过程的名字,parameter为参数值。 【例6.1】计算指定系总学分大于40的人数。 CREATE OR REPLACE PROCEDURE count_grade ( zym in char,person_num out number ) AS BEGIN SELECT COUNT(ZXF) INTO person_num FROM XS WHERE ZYM=zym; END count_grade; 6.1.1 存储过程的创建和执行 【例6.2】从XSCJ数据库的XS表中查询某人的总学分,根据总学分写评语。 CREATE OR REPLACE PROCEDURE update_info ( xm in char ) AS Xf number; BEGIN SELECT ZXF INTO XF FROM XS WHERE XM=xm; IF XF60 THEN
您可能关注的文档
- 炒股必备之经典均线理论.ppt
- 第6章常用类库.ppt
- 《Module+2+My+New+Teachers》(外研版必修1)PPT课件.ppt
- 【实战分享】网络招聘技巧.ppt
- 6.3+活塞式空压机的管理.ppt
- 菜鸟职场学-工读求职万用守则.ppt
- 第八章+房地产营销渠道策划.ppt
- 第五节 向量空间.ppt
- CAD教案第5章_线型、线宽、颜色和图层.ppt
- 第13章+项目采购与分包.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)