原创

使用CallableStatement处理Oracle数据库的存储过程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://jeecg.blog.csdn.net/article/details/5973984

使用CallableStatement处理Oracle数据库的存储过程:
1.预处理SQL语句;
2.使用registerOutParameter方法注册变量数据类型;
3.为每一个“?”赋值;
4.执行操作。


实例:
TestProc.java:

01.import java.sql.*;
02. 
03.public class TestProc {
04. 
05.public static void main(String[] args) {
06.Connection conn = null;
07.CallableStatement cstmt = null;
08.try {
09.Class.forName("oracle.jdbc.driver.OracleDriver");
10.conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:mgc""system""admin");
11.String sql = "{call my_pro_name(?,?,?,?)}";
12.cstmt = conn.prepareCall(sql);
13.cstmt.registerOutParameter(3, Types.INTEGER);
14.cstmt.registerOutParameter(4, Types.INTEGER);
15.cstmt.setInt(16);
16.cstmt.setInt(24);
17.cstmt.setInt(40);
18.cstmt.execute();
19.System.out.println(cstmt.getInt(3));
20.System.out.println(cstmt.getInt(4));
21.catch (ClassNotFoundException e) {
22.e.printStackTrace();
23.catch (SQLException e) {
24.e.printStackTrace();
25.finally {
26.try {
27.if (cstmt != null) {
28.cstmt.close();
29.cstmt = null;
30.}
31.if (conn != null) {
32.conn.close();
33.conn = null;
34.}
35.catch (SQLException e) {
36.e.printStackTrace();
37.}
38.}
39.}
40. 
41.}


proc.sql:
01.create or replace procedure my_pro_name
02.(v_a in number, v_b number, v_ret out number, v_tmp in out number)
03.is
04.begin
05.if(v_a > v_b) then
06.v_ret := v_a;
07.else
08.v_ret := v_b;
09.end if;
10.v_tmp := v_tmp +1;
11.end;
12./
文章最后发布于: 2010-10-29 13:20:00
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览