Oracle中的存储过程:/*创建一个存储函数,返回指定员工的姓名,薪水和年收入*/create or replace function queryEmp2(eno in number, empname out VARCHAR2,empsal out NUMBER)--返回年收入return NUMBERasbegin select ename,sal into empname, empsal from emp where empno=eno; --返回年收入 return empsal*12 + nvl(empsal,0);
end;/调用上面的存储过程的单元测试:package demo;
import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;
import org.junit.Test;
public class Demo {@Testpublic void testQueryEmpl() throws Exception {//注册驱动Class.forName("oracle.jdbc.OracleDriver");//注意如果端口不是1521时,这时要给他改掉。String url = "jdbc:oracle:thin:@localhost:1521:orcl";//默认使用的是orcale中的用户scottString user = "scott";//scott的用户名和密码是tigerString password = "tiger";//调用存储过程。String sql = "{call queryEmpl2(?,?,?)}";
Connection conn = DriverManager.getConnection(url,user,password);CallableStatement call = conn.prepareCall(sql);
//赋参数值call.setInt(1, 7839);//对于out参数//下面的方法是告诉输出的数据的参数类型,即Oracle中的varchar类型。call.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);call.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
//执行call.execute();//取结果,获得名字和薪水String name = call.getString(2);double sal = call.getDouble(3);
System.out.println(name + " " + sal);
//关闭资源call.close();conn.close();}}Linux 下 mysql 找不到 mysql.sock 文件的解决办法Linux平台下如何使用MySQL免安装版(二进制版)相关资讯 Oracle存储过程
- Oracle存储过程拼接in语句 & 自定 (今 09:21)
- 【PL/SQL系列】Oracle存储过程使用 (04月23日)
- Oracle存储过程及Java调用 (05/28/2015 20:29:33)
| - Java调用Oracle存储过程返回多条结 (04月29日)
- Oracle中的存储过程简单应用 (04月10日)
- 判断点是否落在面中的Oracle存储过 (05/09/2015 09:39:30)
|
本文评论 查看全部评论 (0)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间
|