存储过程优点:减少sql网络传输。对业务关系复杂的sql语句的封装,sql语句以程序块的形式被封装在数据库中,写好之后,无论是java,还是.net,抑或其他开发语言,可以像使用sql语句那样随意的调用,这就是数据库开发。
1.创建表,SQL窗口
--创建用户信息表 create table user_info( id varchar2(4), name varchar2(15), pwd varchar2(15), address varchar2(30) );
2.创建存储过程,程序窗口
create or replace procedure AddNewUser(n_id in user_info.id%TYPE, n_name in user_info.name%TYPE, n_pwd in user_info.pwd%TYPE, n_address in user_info.address%TYPE ) is begin insert into user_info(id,name,pwd,address) values(n_id,n_name,n_pwd,n_address); end AddNewUser;
3.调用,测试窗口
declare v_id user_info.id%TYPE :='u003'; v_name user_info.name%TYPE := 'wish'; v_pwd user_info.pwd%TYPE := 'history'; v_add user_info.address%TYPE := 'shanghai'; begin AddNewUser5(v_id,v_name,v_pwd,v_add); DBMS_OUTPUT.put_line('用户'||v_name||'已经成功插入'); end;
另外创建一个查询过程和调用的示例。
--查询 create or replace procedure pro_first_test6 (r out int) is begin select a into r from T; end pro_first_test6;
--执行 begin -- Call the procedure pro_first_test6(r => :r); end;