存储过程与函数的区别是,存储过程可以没有返回值,函数必须有返回值,存储过程主要用于过程的处理,函数主要用于计算。
- 下面是创建存储过程的语法
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.
- 相关数据字典中得到与存储过程或者函数相关的定义信息