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(); 调用 ...
随机推荐
- Dialog 自定义使用1
一: 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...
- 关于Synchronized关键字锁住对象的嵌套问题
如果在子关键字代码块中调用了sleep,是否会保留有所的锁?
- error C2039: “addTextureMesh”: 不是“pcl::visualization::PCLVisualizer”的成员
error C2039: "addTextureMesh": 不是"pcl::visualization::PCLVisualizer"的成员 PCL 1.6 ...
- mac下已装virtualbox运行genymotion还报错找不到虚拟机的解决办法
sudo ln -s /usr/local/bin/VBoxManage /usr/bin/VBoxManage
- p3201&bzoj1483 梦幻布丁
传送门(洛谷) 传送门(bzoj) 题目 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色. 例如颜色分别为1,2,2,1的四个布丁一共有3段颜 ...
- eos命令
ps -ef|grep javakill -9 端口号cd /opt/sudytrue>nohup.outnohup eos7.5/startServer.sh &
- get与post方法(吴老师整理)
Get方式:(用get方式请求时就是调用Servlet中的doGet方法) 1.第一种: 2.第二种:(<a>标签是一种get方式提交) 1.通过GET提交数据,用户名和密码将明文出现在U ...
- Django 之 logging
1. logging 1.1 什么是 logging logging 模块是 Python 内置的日志管理模块,不需要额外安装. 使用: import logging logging.critical ...
- C# 写 LeetCode easy #27 Remove Element
27. Remove Element Given an array nums and a value val, remove all instances of that value in-place ...
- iOS模拟器的应用沙盒在MAC中的位置
每个iOS应用都有自己专属的应用沙盒.分别为 应用程序包 Documents/ Library/Caches/ Library/Preferences/ tmp/ 当运行模拟时,在MAC下找到对应路径 ...