zoukankan      html  css  js  c++  java
  • 存储过程

    存储过程是数据库对象之一,存储过程可以理解成数据库的子程序,在客户端和服务器端可以直接调用它。触发器是与表直接关联的特殊的存储过程,是在对表记录进行操作时触发的。

    存储过程放在字典里,可以在不同用户和应用程序之间共享,并可以实现程序的优化和重用。

    存储过程的优点:

    1.存储过程在服务器端运行,执行速度快。

    2.存储过程执行一次后,代码就驻留在高速缓存,在以后的操作中,只需要从高速缓存中调用已编译代码执行,提高了系统性能。

    3.确保数据库安全。可以不授权用户直接访问应用程序中的一些表,而是授权用户执行访问这些表的存储过程,非表的授权用户除非通过存储过程,否则就不能访问这些表。

    4.自动完成需要执行的任务,存储过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。

    SQL命令创建存储过程:

    create or replace  procedure  过程名称( 参数名称   in/out/in out  类型) 
    is/as
      begin
          过程体
       end 过程名称

    说明:

    1.过程名称:存储过程名称要符合标识符规则,并且在所属方案中必须是唯一的。关键字 or replace 表示在创建存储过程时,如果已存在同名的过程,则重新创建

    2.参数名:存储过程函数的参数名也要符合标识符规则,创建过程时,可以声明一个或多个参数,执行过程时应提供相对应的参数,存储过程的参数模式和函数参数一样,也有三种模式:in out和in out。

       其中:in 表示参数是输入给过程的

                  out 表示参数在过程中将被赋值,可以传给过程体的外部

                  in out 表示该类型的参数既可以向过程体传值,也可以在过程中赋值

    3.过程体:其中包含PL/SQL语句块

    在用户的定义中不能使用下列对象创建语句:

    create view

    create default

    create rule

    create procedure

    create trigger

    --计算指定某门课程参加考试的学生人数。
    create  or replace procedure
    count_result(v_course  in char,v_num out number)
    as
       begin
          select 
          count(*) into v_num
          from  
          SCHOOL_RESULT 
          where 
          RESULT_COURSE=v_course;
       end count_result;
       

    注意:在存储过程体中,不能使用select语句直接查询,否则会出现编译错误。

    通过界面创建存储过程:

    存储过程的调用:

    set serveroutput on;
    declare
      v_number number;
      begin
        count_result('100011',v_number);
        dbms_output.put_line(v_number);
      end;

    存储过程的编辑修改:

    修改存储过程和修改视图一样,也有alter procedure语句,但它是用于重新编译或验证现有过程,如果要修改过程定义,仍然应用reeate or replace procedure命令,语法格式一样。

    也可以通过界面修改存储过程(在SQL Developer中"过程"右击鼠标,选择“编辑”)

    存储过程的删除:

    当某个过程不在需要时就应将其删除,以释放它占用的内存资源

    drop procedure 过程名;

  • 相关阅读:
    WinowsXP 任务栏无法显示当前运行程序图标
    日志记录组件[Log4net]详细介绍(转)
    桌面上的IE图标变成了快捷方式那种图标 怎么还原回来
    面试必须要知道的SQL语法,语句(转载)
    兼容 火狐 IE 的JS时间控件 任意格式 年月日时分秒
    Nagios远程监控软件的安装与配置详解(1)
    linux集群 负载均衡实验笔记
    PHPB2B 模板 标签
    PHP 去除 HTML 回车 换行 空格
    OpenX参考网址
  • 原文地址:https://www.cnblogs.com/zhangpichun-7/p/13190572.html
Copyright © 2011-2022 走看看