-- 定義存儲(chǔ)過(guò)程 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; / set serveroutput on; -- 調(diào)用存儲(chǔ)過(guò)程 declare sal number := &salary; rax number; begin get_rax(sal,rax); dbms_output.put_line(sal || '元工資應(yīng)該交稅' || rax || '元'); end; /

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比泉山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式泉山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋泉山地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
| oracle | ojdbc5.jar |
| c3p0 | c3p0-0.9.1.2.jar c3p0-config.xml |
c3p0-config.xml
<c3p0-config> <default-config> <property name="jdbcUrl">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property> <property name="driverClass">oracle.jdbc.driver.OracleDriver</property> <property name="user">scott</property> <property name="password">tiger</property> <property name="initialPoolSize">3</property> <property name="maxPoolSize">6</property> <property name="maxIdleTime">1000</property> </default-config> </c3p0-config>
JDBCUtils.java
package com.rk.utils;
import java.sql.Connection;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBCUtils {
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
public static Connection getConnection() throws Exception{
return dataSource.getConnection();
}
public static void closeQuietly(AutoCloseable ac){
if(ac != null){
try {
ac.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}CallProc.java
package com.rk.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;
import com.rk.utils.JDBCUtils;
/**
* 演示java-jdbc調(diào)用oracle過(guò)程
*/
public class CallProc {
public static void main(String[] args) throws Exception{
String sql = "{call get_rax(?,?)}";
Connection conn = JDBCUtils.getConnection();
CallableStatement cstmt = conn.prepareCall(sql);
//為第一個(gè)?號(hào)設(shè)置值,從1開(kāi)始
cstmt.setInt(1, 7000);
//為第二個(gè)?注冊(cè)輸出類型
cstmt.registerOutParameter(2, Types.INTEGER);
//執(zhí)行調(diào)用過(guò)程
cstmt.execute();
//接收過(guò)程的返回值,即第二個(gè)?號(hào)
int rax = cstmt.getInt(2);
//顯示
System.out.println("7000元工資應(yīng)該交稅"+rax+"元");
JDBCUtils.closeQuietly(cstmt);
JDBCUtils.closeQuietly(conn);
}
}--定義函數(shù)
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;
/
--調(diào)用函數(shù)
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;
/package com.rk.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;
import com.rk.utils.JDBCUtils;
/**
* 演示java-jdbc調(diào)用oracle函數(shù)
*/
public class CallFunc {
public static void main(String[] args) throws Exception {
String sql = "{? = call findEmpNameAndJobAndSal(?,?,?)}";
Connection conn = JDBCUtils.getConnection();
CallableStatement cstmt = conn.prepareCall(sql);
//為第一個(gè)?注冊(cè)輸出類型
cstmt.registerOutParameter(1, Types.VARCHAR);
//為第二個(gè)?注入值
cstmt.setInt(2, 7788);
//為第三個(gè)?注冊(cè)輸出類型
cstmt.registerOutParameter(3, Types.VARCHAR);
//為第四個(gè)?注冊(cè)輸出類型
cstmt.registerOutParameter(4, Types.INTEGER);
//執(zhí)行函數(shù)調(diào)用
cstmt.execute();
//分別獲取1,3,4占位符的值
String ename = cstmt.getString(1);
String job = cstmt.getString(3);
int sal = cstmt.getInt(4);
//顯示
System.out.println("7788--"+ename+"--"+job+"--"+sal);
JDBCUtils.closeQuietly(cstmt);
JDBCUtils.closeQuietly(conn);
}
}
當(dāng)前題目:Oracle系列:(33)JDBC訪問(wèn)Oracle的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)
轉(zhuǎn)載來(lái)源:http://chinadenli.net/article20/isggjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站排名、軟件開(kāi)發(fā)、App設(shè)計(jì)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)