Java调用Oracle过程与函数
来源:互联网 发布:mac电脑系统下载地址 编辑:程序博客网 时间:2024/05/09 01:14
二 .Java调用Oracle过程与函数
写一个计算个人所得税的应用
--定义过程
create or replace procedure get_rax(salary in number,rax out number)
as
--需要交税的钱
bal number;
begin
bal := salary - 3500;
if bal<=1500 then
rax := bal * 0.03 - 0;
elsif bal<=4500 then
rax := bal * 0.1 - 105;
elsif bal<=9000 then
rax := bal * 0.2 - 555;
elsif bal<=35000 then
rax := bal * 0.25 - 1005;
elsif bal<=55000 then
rax := bal * 0.3 - 2755;
elsif bal<=80000 then
rax := bal * 0.35 - 5505;
else
rax := bal * 0.45 - 13505;
end if;
end;
/
--调用过程
declare
--交税
rax number;
salary number := &salary;
begin
get_rax(salary,rax);
dbms_output.put_line(salary||'元工资需要交'||rax||'元税');
end;
/
public class TestCallOracleProc {
public static void main(String[] args)throws Exception{
String sql = "{call get_rax(?,?)}";
Connection conn = JdbcUtil.getConnection();
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.setInt(1,10000);
cstmt.registerOutParameter(2,Types.INTEGER);
cstmt.execute();
Integer rax = cstmt.getInt(2);
System.out.println("10000元需要交" + rax +"元税");
JdbcUtil.close(cstmt);
JdbcUtil.close(conn);
}
}
查询7788号员工的的姓名,职位,月薪
--定义函数
create or replace function findEmpNameAndJobAndSal(pempno in number,pjob out varchar2,psal out number)
return varchar2
as
pename emp.ename%type;
begin
select ename,job,sal into pename,pjob,psal from emp where empno = pempno;
return pename;
end;
/
--调用函数
declare
pename emp.ename%type;
pjob emp.job%type;
psal emp.sal%type;
begin
pename := findEmpNameAndJobAndSal(7788,pjob,psal);
dbms_output.put_line('7788'||'--'||pename||'--'||pjob||'--'||psal);
end;
/
public class TestCallOracleFunc {
public static void main(String[] args)throws Exception{
String sql = "{?=call findEmpNameAndJobAndSal(?,?,?)}";
Connection conn = JdbcUtil.getConnection();
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.registerOutParameter(1,Types.VARCHAR);
cstmt.setInt(2,7788);
cstmt.registerOutParameter(3,Types.VARCHAR);
cstmt.registerOutParameter(4,Types.INTEGER);
cstmt.execute();
String ename = cstmt.getString(1);
String job = cstmt.getString(3);
Integer sal = cstmt.getInt(4);
System.out.println(ename+":"+job+":"+sal);
JdbcUtil.close(cstmt);
JdbcUtil.close(conn);
}
}
- Java调用Oracle过程与函数
- 调用oracle函数与存储过程
- java 调用oracle中的过程函数
- java调用oracle函数存储过程
- java 调用oracle中存储过程与调用function函数两例
- java调用 Oracle存储过程(或函数) 返回游标、动态数组与
- java连接Oracle以及调用其中的存储过程与存储函数
- java下实现调用oracle的存储过程和函数
- Java调用Oracle数据库存储过程和存储函数
- java下实现调用oracle的存储过程和函数
- java下实现调用oracle的存储过程和函数
- java下实现调用oracle的存储过程和函数
- Java中使用ibatis调用Oracle存储过程和函数
- java下实现调用oracle的存储过程和函数
- oracle--在java中调用存储过程和存储函数
- Java中调用Oracle存储过程及存储函数
- Java,PL/SQL调用 ORACLE存储函数以及存储过程
- Java调用Oracle的存储过程、存储函数
- 数据结构与算法:约瑟夫问题
- (转)Android Studio插件整理
- 函数function
- SQL判断字符在字符串中的位置
- Android框架了解
- Java调用Oracle过程与函数
- 2017
- SQLServer2016 AlwaysOn基于证书的搭建笔记
- 关于Linux的简介
- 网件6250刷Tomato 系统
- SQL求数学函数
- java安全架构____DH秘钥加密解密
- Windows7,python3安装xgboost
- 1102. Invert a Binary Tree (25)