Oracle存儲過程-用JAVA調用總結
2016-04-19 13:43
399 查看
用JAVA調用oracle存儲過程總結
一、無返回值的存儲過程
測試表
例: 存储过程为(当然了,这就先要求要建张表TESTTB,里面两个字段(I_ID,I_NAME)。 ):
在Java里调用时就用下面的代码:
package com.yiming.procedure.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestProcedureDemo1 {
public TestProcedureDemo1() { }
public static void main(String[] args) {
String driver = "Oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:Oracle:thin:@10.20.30.30:1521:vasms";
Statement stmt = null; ResultSet rs = null;
Connection conn = null;
CallableStatement proc = null;
try { Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "bom", "bom");
proc = conn.prepareCall("{ call BOM.TESTA(?,?) }");
proc.setString(1, "100");
proc.setString(2, "TestOne");
proc.execute();
} catch (SQLException ex2) {
ex2.printStackTrace();
} catch (Exception ex2) {
ex2.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
} catch (SQLException ex1) {
}
}
}
}
一、無返回值的存儲過程
測試表
-- Create table create table TESTTB ( ID VARCHAR2(30), NAME VARCHAR2(30) ) tablespace BOM pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );
例: 存储过程为(当然了,这就先要求要建张表TESTTB,里面两个字段(I_ID,I_NAME)。 ):
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2, PARA2 IN VARCHAR2) AS BEGIN INSERT INTO BOM.TESTTB(ID, NAME) VALUES (PARA1, PARA2); END TESTA;
在Java里调用时就用下面的代码:
package com.yiming.procedure.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestProcedureDemo1 {
public TestProcedureDemo1() { }
public static void main(String[] args) {
String driver = "Oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:Oracle:thin:@10.20.30.30:1521:vasms";
Statement stmt = null; ResultSet rs = null;
Connection conn = null;
CallableStatement proc = null;
try { Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "bom", "bom");
proc = conn.prepareCall("{ call BOM.TESTA(?,?) }");
proc.setString(1, "100");
proc.setString(2, "TestOne");
proc.execute();
} catch (SQLException ex2) {
ex2.printStackTrace();
} catch (Exception ex2) {
ex2.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
} catch (SQLException ex1) {
}
}
}
}
相关文章推荐
- Oracle学习笔记(二十二)——块
- Oracle Hint的用法
- Oracle编程入门经典 第12章 事务处理和并发控制
- Oracle编程入门经典 第11章 过程、函数和程序包
- Oracle编程入门经典 第10章 PLSQL
- Oracle编程入门经典 第9章 掌握SQL*Plus
- Oracle编程入门经典 第8章 索引
- Oracle编程入门经典 第7章 表
- Oracle编程入门经典 第6章 在Oracle中处理语句
- Oracle编程入门经典 第4章 新9i示例模式
- Oracle编程入门经典 第2章 SQLPlus和基本查询
- Oracle编程入门经典 第1章 了解Oracle
- oracle进阶实战笔记
- oracle基础实战笔记
- oracle10g和11g版本自动undo管理模式下的手动问题
- Oracle命令行快速编辑SQL语句
- ORACLE FOR UPDATE与FOR UPDATE OF区别
- 快速向表中插入大量数据Oracle中append与Nologging
- Oracle存儲過程與hibernate
- Oracle存储过程的若干问题备忘