【济南校区】oracle存储过程的使用

【济南校区】oracle存储过程的使用

1.什么是oracle的存储过程?存储过程是在大型数据库系统中,一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数来执行它。存储过程是数据库中重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

2.

创建存储过程的语法?

create [or replace]procedure

过程名【(参数名 in/out 数据类型)】

AS

begin

PLSQL

子程序体;

end

;或者

create[or replace]procedure

过程名【(参数名 in/out 数据类型)】

is

begin

PLSQL

子程序体;

end

具体使用:

2.1--

创建不带传出参数的存储过程

create or replace procedure pro_owners_add

(

v_name varchar2,--

名称

v_addressid number,--

地址编号

v_housenumber varchar2,--

门牌号

v_watermeter varchar2,--

水表号

v_ownertypeid number--

业主类型

)

is

begin

insert into t_owners

values(seq_owners.nextval,v_name,v_addressid,v_housenumber,v_watermeter,sysdate,v_ownertypeid );

commit;

end;

--

调用不带传出参数的存储过程

call pro_owners_add( '

马大哈',2,'22333','66777',1 );

begin

pro_owners_add( '

马小哈',2,'22333','223344',1);

end;

2.2--

创建带传出参数的存储过程

create or replace procedure pro_owners_add

(

v_name varchar2,--

名称

v_addressid number,--

地址编号

v_housenumber varchar2,--

门牌号

v_watermeter varchar2,--

水表号

v_ownertypeid number,--

业主类型

v_id out number

)

is

begin

--

对传出参数赋值

select seq_owners.nextval into v_id from dual;

--

新增业主

insert into t_owners

values(v_id,v_name,v_addressid,v_housenumber ,v_watermeter,sysdate,v_ownertypeid );

commit;

end;

--

调用传出参数的存储过程

declare

v_id number;

begin

pro_owners_add( '

马二哈',2,'22333','2233666',1,v_id);

dbms_output.put_line(v_id);

end;

下面是java项目调用存储过程的实现方式:

java.sql.Connection conn = null;

java.sql.CallableStatement stmt = null;

//下面采用的是封装的JDBC创建连接

conn =DaoUtil.getConnection();

stmt =conn.prepareCall("{call pro_owners_add(?,?,?,?,?)}");

stmt.setString(1,owners.getName());

stmt.setLong(2,owners.getAddressid());

stmt.setString(3,owners.getHousenumber());

stmt.setString(4,owners.getWatermeter());

stmt.setLong(5,owners.getOwnertypeid());

stmt.execute();

[if !supportLineBreakNewLine]

[endif]

【黑马程序员济南】小鲁哥哥全学科技术整合帖(一贴在手!天下我有!)


如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!黑马程序员济南中心联系电话:0531-55696830

你可能感兴趣的:(【济南校区】oracle存储过程的使用)