oracle存储过程jdbc调用
package com.jckb.procedure; import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager; public class MainTest {
/**
* 存储过程plsql
create or replace procedure findEmpInfo(pno in number,pname out varchar2,psal out number)
as
begin
select ename,sal into pname,psal from emp where empno=pno;
end;
/
* */
public static void main(String[] args) {
//1、定义变量
String driverClass = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
try{
Class.forName(driverClass);
//2、获取连接对象
Connection connection = DriverManager.getConnection(url, user, password);
//3、创建执行存储过程的语句对象
String sql = "{call findEmpInfo(?,?,?)}";
CallableStatement callableStatement = connection.prepareCall(sql);
//4、设置参数
callableStatement.setInt(1, 7902);
callableStatement.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
callableStatement.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
//5、执行
callableStatement.execute();
//6、获取数据
String ename = callableStatement.getString(2);
double sal = callableStatement.getDouble(3);
System.out.println("姓名:"+ename+" 员工工资:"+sal);
//7、释放资源
}catch(Exception e){
e.printStackTrace();
}
}
}
oracle存储过程jdbc调用的更多相关文章
- oracle存储过程递归调用
oracle存储过程递归调用,如果where子句使用的是传入的参数, 在以后的递归调用中参数就是第一次调用的参数值,解决办法是定义变量,使用自定义的变量问题可以解决.
- Oracle使用jdbc调用带游标参数的存储过程
package com.jckb.procedure; import java.sql.CallableStatement; import java.sql.Connection; import ja ...
- Oracle存储过程的调用和执行
1.什么是存储过程: 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2.无参存储过程的使用: Normal 0 7.8 磅 0 2 fals ...
- oracle 存储过程中调用存储过程
create procedure sp_name() begin ……… end 比如: create procedure pro_showdbs() show datebase; end //用ex ...
- Oracle存储过程的调用(返回参数)
CREATE OR REPLACE PROCEDURE test_in_out_exception (v_empno VARCHAR2,v_guess_sal NUMBER,v_true_sal OU ...
- Oracle存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符
前几天编写一个存储过程,需要访问远程数据库的字段,于是建立一个dbLink并建了同义词: CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl ID ...
- Oracle存储过程java 调用
1.nest表组合成结果集,然后以游标变量的形式返回 --创建类型 create or replace package mytest is -- Author : ADMINISTRATOR -- ...
- Oracle存储过程创建及调用(转)
在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器.在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的.相对来说,数据库系统中的触发器也是一种存储 ...
- oracle 存储过程调用 执行
oracle 存储过程调用 博客分类: 数据库相关 oracle存储过程 2011年02月11日 星期五 14:47 SQL中调用存储过程语句: call procedure_name(); 调用 ...
随机推荐
- 15 Practical Grep Command Examples In Linux / UNIX
You should get a grip on the Linux grep command. This is part of the on-going 15 Examples series, wh ...
- idea2016 64位 安装,jdk环境变量配置
idea 激活服务器地址: 地址1: http://www.iteblog.com/idea/key.php 地址2: http://idea.qinxi1992.cn/ intelli ...
- VSCode编写C/C++项目
VSCode编写C/C++项目 1. 下载插件C/C++.C++ Intellisense;2. 新建一个空文件夹,从VSCode打开. (或File-->Open Folder-->新建 ...
- 面试题: 数据库 真实面试题已看1 操作语句 存储过程 挺好 sql语句练习 有用
今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...
- 【Redis】Redis事务详解,Redis事务支持回滚(不支持悲观锁)
1.redis事物参考:https://baijiahao.baidu.com/s?id=1613631210471699441&wfr=spider&for=pc (php操作red ...
- 9、scala函数式编程-集合操作
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...
- Python最小二乘法解非线性超定方程组
求解非线性超定方程组,网上搜到的大多是线性方程组的最小二乘解法,对于非线性方程组无济于事. 这里分享一种方法:SciPy库的scipy.optimize.leastsq函数. import numpy ...
- Linux包管理
1.yum(Yellow dog Updater, Modified) yum是一个在Fedora(基于Linux的操作系统)和RedHat(基于Linux的操作系统)以及SUSE(基于Linux的操 ...
- SpringBoot第五篇:整合Mybatis
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10869315.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 ORM框架 ...
- bzoj2039: [2009国家集训队]employ人员雇佣(最小割)
传送门 膜一下大佬->这里 不难看出这是一个最小割的模型(然而我看不出来) 我们从源点向每一个点连边,容量为他能带来的总收益(也就是他能对其他所有经理产生的贡献) 然后从每一个点向汇点连边,容量 ...