• 第七节 存储过程 (含函数)


    上一节所创建的PL/SQL 程序块都是匿名的,没有被存储,每次执行后都不可被重用。存储过程是一种命名的PL/SQL 程序块,将程序的业务逻辑放在数据库服务器端实现。使用存储过程的优点:1)java 代码需要与数据库通信方能执行增删改查操作,如果这些操作都是在数据库内部完成显然效率是最高的,存储过程可以在数据库端直接完成操作。并且是经过预编译优化后存储于SQL 内存中,使用时无需再次编译,提高了工作效率;2)存储过程的代码直接存放于数据库中,一般由客户端直接通过存储过程的名字进行调用,减少了网络流量,加快了系统执行速度,例如在进行百万以上的大批量数据查询时,使用存储过程分页要比其他方式分页快得多;3)使用存储过程可以减少S.Q. L. 注. 入. 式. 攻. 击. ,提高系统的安全性,执行存储过程的用户要具有权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接地存取数据;有些企业如金融银行对数据的安全要求比较严格,通常将这些逻辑都包含在存储过程中,不允许程序员直接操作数据表。

    定义

    create procedure procedure_name [(parameter[,parameter,...])] is
    [local declarations]
    begin
    execute statements
    [exception
    exception handlers ]
    end [procedure _name]

    1 存储过程不能使用declare关键字表示声明部分。 不同于触发器的声明部分。

    2  注意它后面可以有 is/as 前面有个括号表示传递的参数,这点不同于触发器。as和is都可以,目前未查到它们的区别。

    3  变量可以写成诸如 job_param IN VARCHAR2 default 'SALESMAN' 形式表示有默认值

    4  变量不可指定长度。不同于create table语句

    5  end后面写过程名,也可以不写,触发器亦是如此。

    二 函数

    函数与过程非常类似,它也是一种存储在数据库中的命名程序块,并且函数也可以接受零个
    或多个输入参数。函数与过程之间的主要区别在于,函数必. 须. 有. 返. 回. 值. 。

    定义 :

    create [or replace] function function_name (parameter [,parameter])
    returne data_type is
    [local declarations]
    begin
    execute statements
    [exception
    exception handlers]
    end [function_name]

    1  调用函数时 可以不写括号。(当函数没有参数时,有参数时估计也能不写 不管有没有默认值)

  • 相关阅读:
    漫游Kafka介绍章节简介
    poj 2309 BST 使用树阵lowbit
    华为-on练习--小写字符数的统计显示
    OpenMp高速分拣
    eclipse 于 Tomcat于 热部署 project
    2015第49周二
    2015第49周一
    2015第48周六
    2015第48周五
    2015第48周四
  • 原文地址:https://www.cnblogs.com/zwl24/p/2356793.html
Copyright © 2020-2023  润新知