Java代码调用数据库带输出参数的存储过程
2015-08-27 10:26
417 查看
存储过程:
create or replace procedure p_generate_processintanceid(v_rule in number,
v_result out varchar2) is
v_seq number;
begin
case v_rule
when 1 then
select 'T' || seq_1234.nextval into v_result from dual;
end case;
end p_generate_processintanceid;
/
java调用代码:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password");//获取数据库连接
CallableStatement cstmt = conn.prepareCall("{Call p_generate_processintanceid(?,?)}");//调用存储过程
cstmt.setInt(1, generateRule);//第一个?赋值
cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);//第二个为输出值
cstmt.execute();//执行存储过程
abc= cstmt.getString(2);//获取经过存储过程计算过后的输出值
create or replace procedure p_generate_processintanceid(v_rule in number,
v_result out varchar2) is
v_seq number;
begin
case v_rule
when 1 then
select 'T' || seq_1234.nextval into v_result from dual;
end case;
end p_generate_processintanceid;
/
java调用代码:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password");//获取数据库连接
CallableStatement cstmt = conn.prepareCall("{Call p_generate_processintanceid(?,?)}");//调用存储过程
cstmt.setInt(1, generateRule);//第一个?赋值
cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);//第二个为输出值
cstmt.execute();//执行存储过程
abc= cstmt.getString(2);//获取经过存储过程计算过后的输出值
相关文章推荐
- Spark入门实战系列--6.SparkSQL(中)--深入了解运行计划及调优
- 将文件存储到数据库(以二进制流的形式)
- Oracle数据库存储过程合并sql的时候报错问题
- django模型到数据库的映射
- Mysql知识碎片
- DB2存储过程实现查询表数据,生成动态SQL,并执行
- Oracle 查询阻塞
- 十个正确使用 Redis 的技巧
- Localdb数据库添加新字段 迁移过程
- Sql逗号分隔一个字符串
- linux下MongoDB查询操作
- Hibernate+SQL Server2008 时间错误
- mysql 服务端事务和客户端事务对比分析
- 使用PL/SQL连接oracle数据库
- mysql修改表、字段、库的字符集
- windows下忘记MySQL密码的修改方法--(转)
- Ubuntu下MySQL的安装与配置
- MySQL中可为空的字段设置为NULL还是NOT NULL
- Entityframework 连接 Mysql 出现闪退的问题
- mysql笔记