java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)
oracle中procedure是不能有返回值的,要想返回值,就得有输出参数,同样要想返回记录集,可以把游标类型作为输出参数。
下面是详细情况说明:
一:无返回值的存储过程调用
存储过程:
create or replace Procedure PRO_1(PARA1 in VARCHAR2,PARA2 in VARCHAR2) as
begin
insert into EMP(ID,NAME) values (PARA1, PARA2);
end PRO_1;
java程序调用:(和下面类同)
二:有返回值的存储过程调用(非结果集)
存储过程:
create or replace Procedure PRO_2(PARA1 in VARCHAR2,PARA2 OUT VARCHAR2) as
bigin
select NAME into PARA2 from EMP where ID= PARA1;
end PRO_2;
java程序调用:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@202.96.28.250:1521:he", "username", "password");
CallableStatement st = conn.prepareCall("{call PRO_2(?,?)}");
st.setString(1,"1");
st.registerOutParameter(2,OracleTypes.VARCHAR);
st.execute();
String name = st.getString(2);//2与上面存储过程的out参数位置对应,也可以同时有多个返回值,那就是 再多加几个out参数了
System.out.println(r.getString("title"));
三:有返回值的存储过程调用(返回结果集)
存储过程:
create or replace procedure Test(p_cur in out sys_refcursor)
as
begin
open p_cur for select * from BOOK;
end;
java程序调用:
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@202.96.28.250:1521:he", "username", "password");
CallableStatement st = conn.prepareCall(
"{call Test(?)}");
st.registerOutParameter(1,OracleTypes.CURSOR);
st.execute();
ResultSet r = (ResultSet) st.getObject(1);
while (r.next()) {
System.out.println(r.getString("title"));
}
}
catch(Exception e) {
}
转载于:https://www.cnblogs.com/xh6210/archive/2012/07/04/2576545.html
java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)相关推荐
- oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...
java程序调用Oracle 存储过程 获取返回值(无返回,非结 果集,结果集) oracle中procedure是不能有返回值的,要想返回值,就得有 输出参数,同样要想返回记录集,可以把游标类型作为 ...
- 如何通过java程序调用oracle中的存储过程
一.编写一个存储过程,向student表中添加学生. 1.创建一个student表 create table student(stuId number,stuName varchar2(50),stu ...
- Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN ...
- 存储过程之八-java代码调用oracle存储过程
一.简介 与调用mysql存储过程类型过程都是如下 1.创建连接 Connection conn = DriverManager.getConnection(url, user, password); ...
- java调用oracle存储过程_java调用oracle存储过程详解
之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧. 首先来看一下项目结构: 在数据库创建存储过程的脚本,假如,使用的是本地的oracl ...
- php oracle 存储过程 返回值,PHP 调用 Oracle 存储过程 之 查询
在网上找了很久都没找到结果,今天看帮助,结合JAVA程序中的一个实例,写出了这个PHP调用Oracle存储过程的例子,也许有人会说PHP调用存储过程是很简单的,但在这里我还是想把这点小成就拿来共享一下 ...
- java调用存储过程 oracle_java调用oracle存储过程
java调用oracle存储过程 java代码 Map param = new HashMap(); param.put("in_str", "1,2,3,4" ...
- python获取返回值_python 调用 shell ,获取返回值和返回信息
网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息. def run_linux_cmd_quiet( ...
- java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?
求助,JAVA Spring 连接池 调用 Oracle 存储过程的问题?在Spring中配置了c3P0的连接池,在调用Oracle的存储过程时,报错[code]java.lang.ClassCast ...
最新文章
- python如何创建不同元素的矩阵_python – 如何在数据帧中创建矩阵元素的数...
- UVa573 The Snail
- 蓝桥杯java第六届决赛第三题--显示二叉树
- java 一元一次方程求解_七年级一元一次方程概念和解法,掌握这些就够了!
- ACL 2020 | 知识库问答的多跳复杂问题查询图生成
- Qt4小技巧——QTextEdit自动滚屏
- 重构-改善既有代码的设计(十)--简化函数调用
- LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
- 图:成都第三医院知识竞赛于9月29日圆满结束,PPT题目界面一览
- spconv编译与安装
- 小众软件(持续更新)
- gmx_MMPBSA.py的安装及使用--只翻译部分内容,具体可参考官方文档(https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/)
- [GAMES101]现代计算机图形学课程总结2:光栅化和反走样
- 金融产品的不可能三角:收益性、风险性、流动性
- [×××.launch]is neither a launch file in package [××] nor is [××] a launch file name解决办法
- ASP.NET Core MVC_Tag Helper
- Azure Synapse Analytics(Azure SQL DW) 性能优化指南(2)——使用具体化视图优化性能(上)
- 国际机器视觉产业发展现状与趋势
- Oracle系统服务
- 关于ARM核心板、一体板、底板的知识分享
热门文章
- 恐怖黎明稳定服务器,恐怖黎明新人联机图文教程 怎么联机-游侠网
- java处理linux中的 m_Linux下处理BOM头和^M的简单方法
- java servlet 转发和重定向_JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
- php发扑克牌,php 扑克牌代码的简单例子
- java 内部类私有成员 能访问,为什么外部Java类可以访问内部类私有成员?
- python两个元组相加_《第5章 Python 列表与元组》5.1.3 序列相加(Adding)!
- lua与C++粘合层框架
- PCB布局,布线技巧总结
- 《Java8实战》笔记(05):使用流
- adguard没有核心 core no_面试官:线程池如何按照core、max、queue的执行顺序去执行?...