在java中调用一个已经写好的存储过程(请带上详细代码,谢谢了,数据库是oracle)

如题所述

//存储过程create or replace Procedure countBySal(
p_sal emp.sal%type,
p_count OUT number
)as
begin
select count(*) into p_count from emp where sal >= p_sql;
end countBySal; //调用步奏import java.sql.CallableStatement; //带哦用存储过程所必须的语句借口
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;public class EmpUtil {

public static int countBySal(double sal) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
String "jdbc:oracle:thin:@localhost:1521:test";
Connection cn=DriverManager.getConnection(url, "scott", "tiger");
String sql="{call countBySal(?,?)}";//调用存储过程的语句,call后面的就是存储过程名和需要传入的参数
CallableStatement cst=cn.prepareCall(sql);
cst.setDouble(1, sal);//设置in参数的值
cst.registerOutParameter(2, Types.INTEGER);//注册out参数的类型
cst.execute();
int result = cst.getInt(2);
cst.close();
cn.close();
return result;
}

public static void main(String[] args) {
int count;
try {
count = EmpUtil.countBySal(3000);
System.out.println("工资在3000元以上的人数为:"+count);
} catch (Exception e) {
e.printStackTrace();
}

}

}
温馨提示:内容为网友见解,仅供参考
无其他回答

求java调用oracle存储过程
import java.sql.ResultSet;public class TestProcedureOne { public TestProcedureOne() { } public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDriver";String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521: hyq ";Statement stmt = null;ResultSet rs =...

如何在Oracle中使用Java存储过程(详解)
1. 使用oracle的sql语句来创建:e.g. 使用create or replace and compile java source named "" as 后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。SQL> create or replace and compile java source named "javademo1" 2 as 3 import java.sql.*; 4 public class ...

如何在ORACLE中使用JAVA存储过程
end;Java调用Oracle的存储过程 try { Class.forName(driverName);conn = DriverManager.getConnection(url, username, password);stat = conn.prepareCall(sql);\/\/ 一个输入参数和三个输出参数 stat.setInt(1, 7566);stat.registerOutParameter(2, OracleTypes.VARCHAR);stat.registerOutParameter(3, Oracle...

在JAVA中怎么调用带参数的存储过程啊??
Class.forName(...Connection conn = DriverManager.getConnection(...\/ p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 其余地方写法固定 \/ CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");\/ 告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java...

Oracle执行\/调用存储过程
使用EXECUTE命令进行执行相对简单,只需在命令后面输入存储过程名称即可。让我们通过一个示例进行说明。实例:执行pro_insertDetp存储过程 首先,创建一个存储过程,用于向dept表中插入一条记录,代码如下:执行此命令:EXECUTE pro_insertDept;可以在PL\/SQL程序块中调用存储过程。例如,使用以下步骤:设置服务...

JAVA调用存储过程,Oracle自定义类型作参数怎么写法
2.在Java中调用上面的存储过程 (1) 在Oracle中定义数组类型idArray (2) 在java构造数组并转换成Oracle中定义的数组类型,调用存储过程 \/** * 当要删除图书时,检查是否仍然有图书复本处于借出状态 *\/ public boolean checkBookStatus(String[] bookIds) throws DataAccessException { boolean flag =...

求一条简单的oracle查询存储过程
再补充一个直接在存储过程内部定义的列子:create or replace procedurce select_user_information (p_user_login_name in varchar2 )as aa varchar2;type refcur is ref cursor;p_cursor refcur;begin open p_cursor for 'select user_telephone from user_infomation where user_telephone='||p_...

用mybatis做oracle的储存过程
1.在数据库中创建以下的存储过程:2.编写SQL映射文件WxclDAO.xml: <![CDATA[call pro_wxcl(#{result,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=WxclMap},{wxclid,mode=IN,jdbcType=VARCHAR})]]> 其中statementType="CALLABLE"表示要调用存储过程,parameterType参数类型;...

oracle中如何执行已经写好的存储过程,就exec 一下?好像不行哦,请举例...
这个得看你在哪里执行了,如果是命令窗口用 exec 存储过程名 就可以。如果是pl\/sql窗口就得用 beging 过程名 end; 包含起来作为匿名块来执行。

oracle 存储过程返回结果集怎么实现?用java如何调用这个存储过程?比如...
1:首先你需要创建一个包,并定义你返回的游标的类型、存储过程 create or replace package TEST_PKG is type cur_emp is REF CURSOR;procedure test_proc (emps out cur_emp);end TEST_PKG;2:然后你再创建包体 create or replace package body TEST_PKG is procedure test_proc (emps out cur_...

相似回答