create or replace procedure Test(dwh in varchar2) is p_sql VARCHAR(10000); begin p_sql := 'update XSXXGL_XSJBXX_TEST set yddh='||777777||' where xh='||dwh||''; execute immediate p_sql; commit; end TEST;
------------------------------------第一种情况:调用存储过程不提交,在ADF中提交--------------------------
/** * 数据调用 */ private void ZxOracle(String xh) { XsxxglAMImpl am = (XsxxglAMImpl) ADFUtils.getApplicationModuleForDataControl("XsxxglAMDataControl"); String stmt = "BEGIN TEST(?); END;"; java.sql.CallableStatement st = null; try { st = am.getDBTransaction().createCallableStatement(stmt, 0); st.setString(1, xh); //传入参数 st.execute(); System.out.println("执行完成"); } catch (java.sql.SQLException s) { s.printStackTrace(); throw new oracle.jbo.JboException(s); } finally { try { if (st != null) { st.close(); } } catch (java.sql.SQLException s2) { throw new oracle.jbo.JboException(s2); } } }
------------------------------------第二种情况:ADF修改值后不提交,调用存储过程提交--------------------------
/** * 数据调用 */ private void ZxOracle(String xh) { System.out.println("111111111"); XsxxglAMImpl am = (XsxxglAMImpl) ADFUtils.getApplicationModuleForDataControl("XsxxglAMDataControl"); //2.ADF修改值不commit,调用存储过程commit TestXsxxViewImpl vo = (TestXsxxViewImpl) am.getTestXsxxView1(); vo.setWhereClause("xh='"+xh+"'"); vo.executeQuery(); Row row = vo.first(); row.setAttribute("Yddh", "1111111"); String stmt = "BEGIN XSXXGL_TEST_COMMIT(?); END;"; java.sql.CallableStatement st = null; try { st = am.getDBTransaction().createCallableStatement(stmt, 0); st.setString(1, xh); //传入参数 st.execute(); System.out.println("执行完成"); } catch (java.sql.SQLException s) { s.printStackTrace(); throw new oracle.jbo.JboException(s); } finally { try { if (st != null) { st.close(); } } catch (java.sql.SQLException s2) { throw new oracle.jbo.JboException(s2); } } }
create or replace procedure XSXXGL_TEST_COMMIT(dwh in varchar2) is p_sql VARCHAR(10000); begin COMMIT; end XSXXGL_TEST_COMMIT;