1.
存储过程是存在服务器端的一段有业务逻辑已经编译的pl/sql,当然可以把业务逻辑放在前端java代码中,通过一次次的发出jdbc语句来完成同样的功能,但使用存储过程比一个个的通过jdbc操作数据库效率要高很多了。
简单语法
create or replace procedure pro
(a in varchar2,
b in varchar2,
c out varchar2
)
as
d varchar2(200);
begin
d := a||b;
c :d;
end pro;
需要注意的是在参数中只需定义参数的类型,不需要说明参数的大小,但是在as和begin之间定义的类型要指定大小,否则都会报编译错误。
最后需要用end pro结束(即end 存储过程名),与begin对应。
2
还有一点要使用游标必须先在包中定义。
create or replace package pag as
type myresults is ref cursor
end pag;
使用游标的存储过程
create or replace procedure pro2
( user_name varchar2,
results pag.myresults)
as
begin
open results for select * from user_talbe where user_name = user_name;
end pro2;