java:
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
public class JieCheng {
public static void main(String[] args) {
int i = 0;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.100:1521:orcl", "scott", "tiger");
CallableStatement call = conn.prepareCall("{call jiecheng(?,?)}");
call.setInt(1, 3);
call.registerOutParameter(2,Types.INTEGER);
call.execute();
i = call.getInt(2);
System.out.println(i+"------------------");
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
pl/sql:
create or replace procedure jiecheng
(
in_i in number,
out_j out number
)
is
ii number;
n number;
m number;
begin
ii := in_i;
m := 1;
for i in 1..ii loop
n := m*i;
m := n;
end loop;
out_j := m;
dbms_output.put_line(m||'------------');
end;
/