oracle 建立package 以及對其中的存儲過程的調用

1、建立package:java

create or replace
 

package test1
 
is 
  procedure  my;
  
  end;

 

2、建立package body:sql

create or replace 


package body test1

  is 
  procedure my
  is 
  begin 
  dbms_output.put_line('test');
  end my;
 
 end test1;

3、調用 package下的存儲過程:oracle

begin

  test1.my;
  
end ;   

而後就在DBMS輸出中看到 存儲過程已經調用。

在pl/sql develper中 選中 存儲過程,點test ,顯示以下:code

beginget

 call test1.my;io

end;class

 

在java中調用存儲過程:test

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);
 }
}

 

2、對有參數的存儲過程的調用:import

--建立存儲過程
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;

2、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 ,程序正常!

相關文章
相關標籤/搜索