建表:
create table student ( username varchar(20), pass varchar(20) );
--插入数据存贮过程
create or replace procedure test_stu( param1 IN varchar2) as
begin
insert into student(username) values (param1);
end test_stu;
--有返回字段值的存贮过程
create or replace procedure test_stu_backpass(param_in IN varchar2,param_out OUT varchar2) as
begin
select pass into param_out from student where username= param_in;
end test_stu_backpass;
package com;
import java.sql.*;
import java.sql.ResultSet;
/**
* 调用存贮过程
* @author jinchun
*
*/
public class TestProcedureOne {
public TestProcedureOne() {
}
/**
*
插入值的存贮过程
*/
public static void test_ProcedureOne()
{
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:mldn";//数据库名称mldn
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
CallableStatement cstmt = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "user1", "user1");//用户名和密码user1
CallableStatement proc = null;
//存贮过程名称test_stu
proc = conn.prepareCall("{ call test_stu(?)}");
proc.setString(1, "king");
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) {
}
}
}
/**
*
有返回字段值的存贮过程
*/
public static void test_ProcedureTwo()
{
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:mldn";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "user1", "user1");//用户名和密码user1
CallableStatement proc = null;
proc = conn.prepareCall("{ call test_stu_backpass(?,?) }");
proc.setString(1, "king");
proc.registerOutParameter(2, Types.VARCHAR);
proc.execute();
String testPrint = proc.getString(2);
System.out.println("=testPrint=is="+testPrint);
}
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) {
}
}
}
public static void main(String[] args) {
test_ProcedureTwo();
}
}
分享到:
相关推荐
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
oracle 存储过程实例 oracle存储过程实例
oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel
oracle 存储过程 unwrap 图形解密 工具
ibatis调用oracle存储过程分页
可以将SQL Server存储过程转为oracle存储过程的工具
帆软报表调用Oracle存储过程如果存储过程定义中没有参数,但是设计器中缺弹出一个storeParameter1参数的解决插件
oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记
使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO ...
oracle 存储过程批量提交
oracle存储过程学习经典入门 非常好的 初学者必看
oracle 存储过程 函数 dblink 绝对对工作和平时学习有价值的资料。针对个人具体情况做修改即可使用
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
4、开发指南:《Oracle存储过程入门指南&100+种真实业务场景存储过程实例.pdf》,可以帮助初学者系统学习。 5、资源包括“通用存储过程整理” 和 “真实业务存储过程整理” 两部分,通用适合各种系统,可以无缝隙...
行业内Oracle存储过程最基本的开法规范,适合oracle入门小白学习
oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例
Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码
linux系统中使用shell脚本对oracle存储过程进行编译
Oracle存储过程调用bat批处理脚本程序,ORACLE调用OS【调用BAT脚本等】