Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
Oracle存储过程可以有无参数存储过程和带参数存储过程。
1.存储过程的一般结构:
create or replace procedure test(Name in out type, Name in out type, ...) is
--变量定义区
begin
--变量赋值
--数据处理
exception
--存储过程异常
end test;
--test 为存储过程函数的名称。(Name in out type, Name in out type, ...)括号内为参数列表
--Name为参数的名称;in out 为参数的传入传出,in为传入参数,out为返回参数;type为参数类型
例子:
create or replace procedure adduser( RTN_INFO out varchar2(2000),RTN_CODE
number,USER_NAME in varchar2(50),PASSWORD in varchar2(50))
is
--变量定义
V_USERNAME varchar2(50);
V_PWD varchar2(50);
V_PROCESS_NAME varchar2(30);
begin
--变量赋值
V_USERNAME := USER_NAME;
V_PWD := PASSWORD;
--数据处理
insert into user(user_name,password) values(V_USERNAME,V_PWD);
exception
RTN_INFO := V_PROCESS_NAME||'存储过程执行失败;
RTN_CODE := -1 ;
end test;
2.存储过程的调用
declare
rtn_info varchar(100);
rtn_code number;
user_name varchar(50);
user_password varchar(50);
begin
user_name :='jack';
user_password :='123456'
rtn_info :='';
rtn_code :='';
adduser(RTN_CODE =>rtn_code ,RTN_INFO =>rtn_info ,USER_NAME =>user_name,PASSWORD=>user_password ); --变量一一对应
DBMS_OUTPUT.PUT_LINE(RTN_CODE||' '||RTN_INFO);
END;--调用结束