In Oracle Adf we will doing DML operation by calling the Procedure.Here the syntax of calling
Stored procedure is as follow:
Here Procedure name is -- Vinayprocedure(empno,job,name) StoredProcedureCall call = new StoredProcedureCall(); call.setProcedureName("Vinayprocedure"); call.addUnamedArgument("empno"); call.addUnamedInOutputArgument("job", "job", String.class); call.addUnamedOutputArgument("name"); DataModifyQuery query = new DataModifyQuery(); query.setCall(call); query.addArgument("empno"); query.addArgument("job"); query.addArgument("name"); session.addQuery("Vinayprocedure ", query); Vector parameters = new Vector(); parameters.addElement(new Integer(7369)); parameters.addElement("engineer"); parameters.addElement("Vinay"); Object data = session.executeQuery(query, parameters); When we are calling data from some view object, we can use this code :- VinayViewObject1Iterator= view object iterator. StoredProcedureCall call = new StoredProcedureCall(); call.setProcedureName("Vinayprocedure2"); call.addNamedArgument("empno"); call.addNamedArgument("job"); call.addNamedArgument("name"); DataModifyQuery query = new DataModifyQuery(); query.setCall(call); query.addArgument("empno"); query.addArgument("job"); query.addArgument("name"); Vector parameters = new Vector(); DCIteratorBinding iteratorobject= findIterator("VinayViewObject1Iterator"); RowSetIterator rowObject = iteratorobject.getRowSetIterator(); rowObject.setRangeSize(rowObject.getRowCount()); RowKeySet keysetobject = this.getTable().getSelectionState(); Set keySetobject = keysetobject.getKeySet(); Iterator itrobject = keysetobject.iterator(); while (itrobject.hasNext()) { Integer intr = (Integer)itr.next(); VinayViewObjectRowImpl row = (VinayViewObjectRowImpl)keysetobject.getRowAtRangeIndex(intr.intValue()); parameters.addElement(row.getAttribute(“empno)); parameters.addElement(row.getAttribute(“job”)); parameters.addElement(row.getAttribute(“name”)); session.addQuery("Vinayprocedure2", query); Object data = session.executeQuery(query, parameters); parameters.clear();