-
/** * 測試存儲函數(shù) * 傳入員工編號,返回員工年收入 * create or replace function queryemp_income(eno number) return number * @throws Exception */ @Test public void testFunction() throws Exception { String sql="{?=call queryemp_income(?)}"; Connection conn=null; CallableStatement st=null; try { conn=JdbcUtils.getConnection(); st=conn.prepareCall(sql); st.setInt(2, 7839); st.registerOutParameter(1, OracleTypes.NUMBER); st.execute(); double income = st.getDouble(1); System.out.println("編號為7839的員工的年收入是"+income); } catch (Exception e) { e.printStackTrace(); }finally{ JdbcUtils.close(conn, st, null); } }查看全部
-
/** * 測試存儲過程 * 傳入?yún)?shù):eno(員工編號) * 輸出參數(shù):ename(姓名) * sal(月薪) * empjob(職位) * create or replace procedure pro_queryemp(eno in number,ename out varchar2,sal out number,empjob out varchar2) * @throws Exception */ @Test public void testProcdure() throws Exception { String sql="{call pro_queryemp(?,?,?,?)}"; Connection conn=null; CallableStatement statement=null; try { conn=JdbcUtils.getConnection(); statement=conn.prepareCall(sql); //傳入in參數(shù)——員工編號 statement.setInt(1, 7839); //聲明out參數(shù)的類型 statement.registerOutParameter(2, OracleTypes.VARCHAR); statement.registerOutParameter(3, OracleTypes.NUMBER); statement.registerOutParameter(4, OracleTypes.VARCHAR); //執(zhí)行存儲過程 statement.execute(); String ename = statement.getString(2); int salary = statement.getInt(3); String empjob = statement.getString(4); //輸出查詢結(jié)果 System.out.println(ename+"\t"+salary+"\t"+empjob); } catch (Exception e) { e.printStackTrace(); }finally{ JdbcUtils.close(conn, statement, null); }}查看全部
-
oracle——jdbc連接字符串查看全部
-
/** * 釋放資源 * @param conn * @param st * @param rs */ public static void close(Connection conn,Statement st,ResultSet rs){ if (rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs=null; } } if (st!=null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ st=null; } } if (conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ conn=null; } } }查看全部
-
存儲過程和存儲函數(shù)的參數(shù)——out參數(shù)查看全部
-
--查詢某個員工的年收入 create or replace function queryemp_income(eno number) return number as --定義變量接收薪水和獎金 p_sal emp.sal%type; p_comm emp.comm%type; begin select sal,comm into p_sal,p_comm from emp where empno=eno; --nvl為遇空函數(shù),如果p_comm為空則返回0 return nvl(p_comm,0)+p_sal*12; end; /查看全部
-
設(shè)置sqlplus顯示的寬度: set linesize 300;查看全部
-
存儲函數(shù)的定義:查看全部
-
存儲過程的調(diào)試:<br> 1、用sys賬戶登錄為scott用戶授權(quán):grant DEBUG CONNECT SESSION ,DEBUG ANY PROCEDURE to scott;<br> 2、編譯以進(jìn)行調(diào)試;查看全部
-
--帶參數(shù)的存儲過程 --給指定的員工漲100 create or replace procedure proc_raise_sal(eno in number) as --定義一個變量保存漲前的薪水; p_sal emp.sal%type; begin select sal into p_sal from emp where empno=eno; update emp set sal=sal+100 where empno=eno; --為保證調(diào)用存儲過程的外部程序的一致性 --一般不在存儲過程和存儲函數(shù)中commit或rollback,誰調(diào)用誰commit dbms_output.put_line('漲工資完成'); end; /查看全部
-
存儲過程的2種調(diào)用方式:查看全部
-
存儲過程語法:查看全部
-
存儲過程和存儲函數(shù):查看全部
-
存儲函數(shù)與存儲過程結(jié)構(gòu)類似,但是存儲函數(shù)有一個返回值,其結(jié)構(gòu)如下: CREATE OR REPLACE FUNCTION function_name(variable...) RETURN return_type AS ... 函數(shù)程序體;查看全部
-
OUT參數(shù)查看全部
舉報(bào)
0/150
提交
取消