Q:为什么需要存储过程
A:sql语句只能单行执行,为了实现复杂的业务操作、业务约束,需要存储过程。
oracle文档:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6009.htm
一、定义
(1)概念: 存储子程序是指被命名的PL/sql块,以编译的形式存储在数据库服务器中,可以在应用程序中进行调用,是PL/sql程序模块化的一种体现。
(2)PL/sql中的存储子程序:存储过程和(存储)函数两种。
(3)区别:①存储过程用于执行特定的操作,不需要返回值。②而函数则用于返回特定的数据。
二、创建存储过程
CREATE [ OR REPLACE ] @H_502_48@PROCEDURE [ schema. ]procedure [ (argument [ { IN | OUT | IN OUT } ] [ NOCOPY ] datatype [ DEFAULT expr ] [,argument [ { IN | OUT | IN OUT } ] [ NOCOPY ] datatype [ DEFAULT expr ] ]... ) ] { IS | AS } BEGIN EXCEPTION END[procedure_name];
⒈参数的模式
存储过程参数模式包括IN、OUT、IN OUT 三种
(1)IN(默认参数模式):表示当存储过程被调用时,实参值被传递给形参;在存储过程内,形参起常量作用,只能读该参数,而不能修改该参数;当存储过程调用结束返回调用环境时,实参没有被改变。IN模式参数可以是常量或表达式。