存储过程与函数


存储过程与函数的区别是,存储过程可以没有返回值,函数必须有返回值,存储过程主要用于过程的处理,函数主要用于计算。

  • 下面是创建存储过程的语法

CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter1 [mode1] datatype1,
parameter2 [mode2] datatype2,……)]
IS|AS
PL/SQL Block;
(OR REPLACE 关键字是指如果这个名字的存储过程已经存在,则使用新的程序内容进行替
换。mode 参数是指输入参数的类型,mode 取值有三种(IN, OUT, IN OUT)分别是输入,输
出和输入输出参数。)

  • 删除存储过程使用 DROP PROCEDURE 关键字:

DROP PROCEDURE prcedure_name;

  • 函数

函数与过程类似,不同的是函数必须至少有一个返回参
数。而过程不一定要有返回参数,函数一般用于计算,过程用于处理,创建函数的语法如下
CREATE [OR REPLACE] FUNCTION function_name[(parameter1 datatype1,
parameter2 datatype2…………)]
RETURN datatype
IS|AS
PL/SQL block
函数的删除类似于过程的删除
DROP FUNCTION function_name;

  • 建立和使用这些数据库对象要预先具备相应的权限

1.系统级权限:可以分配的权限主要有 CREATE (ANY) PROCEDURE, ALTER ANY 
PROCEDURE, DROP ANY PROCEDURE, EXCUTE ANY PROCEDURE.
2.对象级权限:主要是 EXCUTE.

  • 相关数据字典中得到与存储过程或者函数相关的定义信息
ALL_OBJECTS :存储了所有的数据库对象,通过 OBJECT_TYPE 字段可以区分对象类
型。 STATUS 字段说明该对象状态是否有效(如存储过程中的某个表属
性被修改后,该存储过程状态可能变为无效)。
USER_SOURCE :存储了存储过程或者函数的程序代码
USER_ERRORS :存储了存储过程或者函数编译时产生的错误信息,在 SQL*PLUS 中可
以使用 SHOW ERROR 查看。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值