免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 807 | 回复: 0
打印 上一主题 下一主题

java读取oracle的存储过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-19 19:05 |只看该作者 |倒序浏览

oracle的PLSQL
CREATE OR REPLACE package chapter_13 as
TYPE rs IS REF CURSOR ;
procedure founder(oFields out rs);
end;
CREATE OR REPLACE package body chapter_13 as
PROCEDURE founder(oFields out rs) IS
BEGIN
  open oFields for
   select * from person;
END founder;
end;
java代码
package jdbc;
import java.io.*;
import java.sql.*;
import java.text.*;
import oracle.jdbc.OracleTypes;
public class TestStoredProcedures {
    Connection conn;
    public TestStoredProcedures() {
        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:orcl", "jola", "jola");
        } catch (SQLException e) {
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
    }
    public static void main(String[] args) throws Exception {
        new TestStoredProcedures().process();
    }
    public void process() throws SQLException {
        
        long start = 0;
        long end = 0;
        CallableStatement cstmt = null;
        try {
            start = System.currentTimeMillis();
            // *** SQL92 escape syntax ***
            
            cstmt = conn.prepareCall(
                    "{call  chapter_13.founder(?)}");
            cstmt.registerOutParameter(1, OracleTypes.CURSOR);
            ResultSet rs = null;
            cstmt.execute();
             rs = (ResultSet)cstmt.getObject(1);
            while (rs.next()) {
                System.out.println(rs.getString("NAME"));
            }
            rs.close();
            end = System.currentTimeMillis();
            System.out.println("Average elapsed time = " +
                               (end - start) / 8 + " milliseconds");
        } catch (SQLException e) {
            System.err.println("SQL Error: " + e.getMessage());
        } finally {
            if (cstmt != null) {
                try {
                    cstmt.close();
                } catch (SQLException ignore) {}
            }
        }
    }
    protected void finalize() throws Throwable {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException ignore) {}
        }
        super.finalize();
    }
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11922/showart_76314.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP