目录
存储过程
存储过程的创建
存储过程的调用及删除
在 SQL Plus 中调用存储过程
在 PL/SQL 块中调用存储过程
存储过程的删除
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
存储过程
存储过程是一种命名的 PL/SQL 数据块,存储在 Oracle 数据库中,可以被用户调用。
存储过程可以包含参数,也可以没有参数,它一般没有返回值。存储过程是事先编译好的代码,再次调用的时候不需再次编译,因此程序的运行效率非常高。
存储过程的创建
存储过程的创建和上一章所介绍的 PL/SQL 块类似,其基本语法格式如下所示
CREATE [OR REPLACE] 过程名
[< 参数 1> IN|OUT|IN OUT < 参数类型 >[ 默认值 |:= 初始值 ]]
[,< 参数 2> IN|OUT|IN OUT < 参数类型 >[ 默认值 |:= 初始值 ],...]
IS|AS
[ 局部变量声明 ]
BEGIN
程序语句序列
[EXCEPTION]
异常处理语句序列
END 过程名
其中的参数说明如下。
(1)OR REPLACE 为可选参数,表示如果数据库中已经存在要创建的过程,则先把原先过程删除,再重新建立过程,或者说覆盖原先的过程。
(2)如果过程中存在参数,则需要在参数后面用“IN|OUT|IN OUT”关键字。如果是输入参数,则参数后面用“IN”关键字,表示接受外部过程传递来的值;如果是输出参数,则参数后面用“OUT”关键字,表示此参数将在过程中被复制,并传递给过程体外;如果是“IN OUT”关键字则表示该参数既具有输入参数特性,又具有输出参数的特性。默认是 IN 参数,即如果不写就默认为 IN 参数。
(3)参数类型不能指定长度,只需给出类型即可。
(4)局部变量声明中所定义的变量只在该过程中有效。
(5)局部变量声明,程序语句序列和异常处理语句序列定义和使用同上一章 PL/SQL 块
存储过程的调用及删除
存储过程创建后,以编译的形式存在于 Oracle 数据库中,可以在 SQL Plus 中或者 PL/SQL 块中调用
在 SQL Plus 中调用存储过程
在 SQL Plus 中,调用存储过程的语句如下
EXECUTE 过程名 [ 参数序列 ]
其中 EXECUTE 可以简写成 EXEC
在 PL/SQL 块中调用存储过程
直接把过程名写到其他 PL/SQL 块中即可调用,此时不需使用 EXECUTE 命令
存储过程的删除
存储过程的删除和表的删除类似,基本语法如下所示
DROP PROCDURE 过程名