ORACLE存储过程入门.doc
文本预览下载声明
Java调用oracle存储过程总结
时间: 2010-10-15 / 分类: Java编程, Oracle / 浏览次数: 77 次 / 0个评论 发表评论
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励。
一:无返回值的存储过程
存储过程为:
view source
print?
1 CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)? AS 2 ??
3 BEGIN 4 ??
5 ???INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2); 6 ??
7 END TESTA; 然后呢,在java里调用时就用下面的代码:
view source
print?
01 package com.hyq.src;
02 ??
03 import java.sql.*;
04 import java.sql.ResultSet;
05 ??
06 public class TestProcedureOne {
07 ??
08 ??public TestProcedureOne() {
09 ??
10 ??}
11 ??
12 ??public static void main(String[] args ){
13 ??
14 ????String driver = oracle.jdbc.driver.OracleDriver;
15 ??
16 ????String strUrl = jdbc:oracle:thin:@:1521: hyq ;
17 ??
18 ????Statement stmt = null;
19 ??
20 ????ResultSet rs = null;
21 ??
22 ????Connection conn = null;
23 ??
24 ????CallableStatement cstmt = null;
25 ??
26 ????try {
27 ??
28 ??????Class.forName(driver);
29 ??
30 ??????conn =? DriverManager.getConnection(strUrl, hyq , hyq );
31 ??
32 ??????CallableStatement proc = null;
33 ??
34 ??????proc = conn.prepareCall({ call HYQ.TESTA(?,?) });
35 ??
36 ??????proc.setString(1, 100);
37 ??
38 ??????proc.setString(2, TestOne);
39 ??
40 ??????proc.execute();
41 ??
42 ????}
43 ??
44 ????catch (SQLException ex2) {
45 ??
46 ??????ex2.printStackTrace();
47 ??
48 ????}
49 ??
50 ????catch (Exception ex2) {
51 ??
52 ??????ex2.printStackTrace();
53 ??
54 ????}
55 ??
56 ????finally{
57 ??
58 ??????try {
59 ??
60 ????????if(rs != null){
61 ??
62 ??????????rs.close();
63 ??
64 ??????????if(stmt!=null){
65 ??
66 ????????????stmt.close();
67 ??
68 ??????????}
69 ??????????if(conn!=null){
70 ????????????conn.close();
71 ??????????}
72 ????????}
73 ??????}
74 ??????catch (SQLException
显示全部