作者:麻廿_965 | 来源:互联网 | 2014-07-13 17:52
oracle使用带有输入和输出参数的存储过程使用存储过程个人觉得还是有点麻烦的,一个不小心就出现什么参数错误,个人建议如果能少使用就少使用。这里我想用jdbc的方式给大家交流下我自己写的一个比较简单的存储过...SyntaxHighlighter.all();
oracle使用带有输入和输出参数的存储过程
使用存储过程个人觉得还是有点麻烦的,一个不小心就出现什么参数错误,个人建议如果能少使用就少使用。这里我想用jdbc的方式给大家交流下我自己写的一个比较简单的存储过程。至于用框架写的我暂时还没有研究出来。过几天会补全给大家的。
1.先来写一个带有输入和输出参数的存储过程
[sql]
create or replace procedure xxx(
newfid In Number,
newfname Out Varchar
) www.2cto.com
As
begin
Select fname Into newfname From m_student Where fid=newfid;
end;
这里需要注意varchar不能写成varchar2,否则会出现输入和输出参数不匹配的异常
2.使用jdbc执行存储过程
[java]
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); www.2cto.com
cs.registerOutParameter(2, java.sql.Types.VARCHAR);
cs.execute();
String strAge = cs.getString(2);
System.out.println("fid是:" + strAge);
getConn.close();
}
}
OracleCallableStatement可以写成CallableStatement,输入参数不需要注册,但是输出参数需要注册,最要注意的就是数据类型了否则也会出错。
作者 chenwill3