Oracle使用带有输入和输出参数的存储过程
Oracle使用带有输入和输出参数的存储过程
Oracle使用存储过程个人觉得还是有点麻烦的,一个不小心就出现什么参数错误,个人建议如果能少使用就少使用。这里我想用jdbc的方式给大家交流下我自己写的一个比较简单的存储过程。至于用框架写的我暂时还没有研究出来。过几天会补全给大家的。
1.先来写一个带有输入和输出参数的存储过程
- create or replace procedure xxx(
- newfid In Number,
- newfname Out Varchar
- )
- As
- begin
- Select fname Into newfname From m_student Where fid=newfid;
- end;
这里需要注意varchar不能写成varchar2,否则会出现输入和输出参数不匹配的异常
2.使用jdbc执行存储过程
- package org.lxh;
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import oracle.jdbc.OracleCallableStatement;
- public class TestUse {
- public static void main(String[] args) throws Exception {
- DBConnection con = new DBConnection();
- Connection getConn = con.getConnection();
- OracleCallableStatement cs = (OracleCallableStatement)getConn.prepareCall("{call xxx(newfid => :newfid,newfname => :newfname)}");
- cs.setInt(1, 365);
- cs.registerOutParameter(2, java.sql.Types.VARCHAR);
- cs.execute();
- String strAge = cs.getString(2);
- System.out.println("fid是:" + strAge);
- getConn.close();
- }
- }
OracleCallableStatement可以写成CallableStatement,输入参数不需要注册,但是输出参数需要注册,最要注意的就是数据类型了否则也会出错。
更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12
评论暂时关闭