![](http://dl2.iteye.com/upload/attachment/0109/9856/0ecfde24-a64d-3a84-9638-04f314c0f253.png)
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;