存储过程概念

     刚毕业找工作时,数据库方面被问的较多的一个问题,现在才对这个概念有真正的接触,学习小结一下。

     将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 

使用存储过程而非SQL语句的原因是:
存储过程通常会使性能增加,存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,并对其进行缓存以备将来重用。
在数据库中,存储过程可分别得到保护。客户可以被给予执行某个存储过程的权限,但无权处理底层的表。
存储过程将导致维护简单,因为在一个已部署组件内,修改存储过程通常要比修改硬编码的SQL语句简单。存储过程可以重复使用,可减少数据库开发人员的工作量。
存储过程可以降低网络流量,因为SQL语句可以以批处理的方式执行,而不是从客户端发送多个请求。

定义存储过程

CREATE[OR REPLACE] PROCEDURE[schema.] procedure_name
[(argument[{IN|OUT|IN OUT}]datatype|,...|)]
{IS | AS}
pl/sql_body;

 


其中,procedure_name是存储过程的名称,argument是参数名,datatype是对应参数的数据类型。OR REPLACE是可选项,如果已经存在一个同名的过程,则首先删除已有过程,然后创建。关键字IS和AS是等价的,用来引出过程体。


下面是一个PL/SQL下写的存储过程
CREATE OR REPLACE PROCEDURE PA_REMOTE_LOAD(M_CODE IN NUMBER)
IS
BEGIN
    DELETE FROM ECC_URL;

    insert into ecc_url
           (pc_code, url)
           SELECT PC,URL FROM ECC_URL_MODEL WHERE MODEL_CODE=M_CODE;
    COMMIT;

END;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值