public DatabaseCall getDeleteCall() { DatabaseCall call = null; ObjectRelationalDatabaseField ordf = new ObjectRelationalDatabaseField(""); ordf.setSqlType(Types.STRUCT); ordf.setSqlTypeName("PHONE_TYPE"); ordf.setType(Phone.class); if (useCustomSQL) { String sqlString = "BEGIN SProc_Delete_PHolders(####ssn, ####occupation, ####sex, " + "####firstName, ####birthDate, ####lastName, ####address, ####childrenNames, ####phones); END;"; SQLCall sqlcall = new SQLCall(sqlString); sqlcall.setCustomSQLArgumentType("ssn", Long.class); sqlcall.setCustomSQLArgumentType("occupation", String.class); sqlcall.setCustomSQLArgumentType("sex", Character.class); sqlcall.setCustomSQLArgumentType("firstName", String.class); sqlcall.setCustomSQLArgumentType("birthDate", java.sql.Date.class); sqlcall.setCustomSQLArgumentType("lastName", String.class); sqlcall.setCustomSQLArgumentType("address", Types.STRUCT, "ADDRESS_TYPE"); sqlcall.setCustomSQLArgumentType("childrenNames", Types.ARRAY, "NAMELIST_TYPE", Vector.class); sqlcall.setCustomSQLArgumentType("phones", Types.ARRAY, "PHONELIST_TYPE", Vector.class, ordf); call = sqlcall; } else { StoredProcedureCall sqlcall = new StoredProcedureCall(); sqlcall.setProcedureName("SProc_Delete_PHolders"); sqlcall.addUnamedInOutputArgument("ssn", Long.class); sqlcall.addUnamedInOutputArgument("occupation", String.class); sqlcall.addUnamedInOutputArgument("sex", Character.class); sqlcall.addUnamedInOutputArgument("firstName", String.class); sqlcall.addUnamedInOutputArgument("birthDate", java.sql.Date.class); sqlcall.addUnamedInOutputArgument("lastName", String.class); sqlcall.addUnamedInOutputArgument("address", "address", Types.STRUCT, "ADDRESS_TYPE"); sqlcall.addUnamedInOutputArgument( "childrenNames", "childrenNames", Types.ARRAY, "NAMELIST_TYPE", Vector.class); sqlcall.addUnamedInOutputArgument( "phones", "phones", Types.ARRAY, "PHONELIST_TYPE", Vector.class, ordf); call = sqlcall; } return call; }