一、创建package:
create or replace
package test1
is
procedure my;
end;
二、创建package body:
create or replace
package body test1
is
procedure my
is
begin
dbms_output.put_line('test');
end my;
end test1;
三、调用 package下的存储过程:
begin
test1.my;
end ;
然后就在DBMS输出中看到 存储过程已经调用。
在pl/sql develper中 选中 存储过程,点test ,显示如下:
begin
call test1.my;
end;
在java中调用存储过程:
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import com.wa.sql.oracle.utils.DBUtils;
public class Procedure {
public static void main(String[] args) throws SQLException {
Connection connection =DBUtils.getConnect();
CallableStatement statement =connection.prepareCall("{call test1.my}");
statement.execute();
DBUtils.closeConnection(connection);
}
}
二、对有参数的存储过程的调用:
--创建存储过程
create or replace procedure
param_pro (age number , outage out number )
is
begin
outage := age +1000;
end param_pro;
--sql 中调用
declare
str number;
begin
param_pro(10,str);
dbms_output.put_line(str);
end;
二、Java中调用:
public class Procedure {
public static void main(String[] args) throws SQLException {
Connection connection =DBUtils.getConnect();
CallableStatement statement =connection.prepareCall("{call param_pro(?,?)}");
// 第一个参数赋值
statement.setInt(1,200);
//输出参数的类型
statement.registerOutParameter(2,java.sql.Types.INTEGER);
//执行存储过程
statement.execute();
//获取输出结果
System.out.println(statement.getInt(2));
DBUtils.closeConnection(connection);
}
}
运行程序后控制台输出 :1200 ,程序正常!