存储过程
存储过程是一种PL/SQL块,以命名的数据库对象形式存储于数据库当中。
可以传递参数给存储过程。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;
语法如下:
CREATE [OR REPLACE] PROCEDURE <存储过程名称> [(<parameter list>)]
IS|AS
<local variable declaration>
BEGIN
<executable statements>
[EXCEPTION
<exception handlers>]
END [存储过程名称];
CREATE OR REPLACE PROCEDURE MYPROC AS BEGIN DELETE DEPT WHERE DEPTNO IN (80,81); INSERT INTO DEPT(DEPTNO, DNAME) VALUES(80, '财务部'); INSERT INTO DEPT(DEPTNO, DNAME) VALUES(81, '市场部'); COMMIT; END MYPROC;
注意:
(1)没有参数的时候不需要加括号。也就是第1条语句不能这样写:
CREATE OR REPLACE PROCEDURE MYPROC()
(2) 如果有INSERT,UPDATE,DELETE语句,则一定要有COMMIT语句。过程参数的三种模式:
--IN
用于接受调用程序的值
(默认的参数模式)
--OUT
用于向调用程序返回值
--IN OUT
用于接受调用程序的值,并向调用程序返回更新的值