use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.
the class PLSQLProject method buildAddressOutObjectQuery.
protected DatabaseQuery buildAddressOutObjectQuery() {
PLSQLrecord record = buildAddressRowTypeRecord();
PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
call.setProcedureName("PLSQL_ADDRESS_OUT");
call.addNamedOutputArgument("P_ADDRESS", record);
DataReadQuery query = new DataReadQuery();
query.setCall(call);
return query;
}
use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.
the class PLSQLProject method buildAddressRowTypeRecord.
protected PLSQLrecord buildAddressRowTypeRecord() {
PLSQLrecord record = buildAddressRowTypeDataRecord();
record.setCompatibleType("PLSQL_P_PLSQL_ADDRESS_REC");
record.setJavaType(Address.class);
return record;
}
use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.
the class PLSQLProject method buildAddressListInQuery.
protected DatabaseQuery buildAddressListInQuery() {
PLSQLrecord record = buildAddressRecord();
PLSQLCollection collection = new PLSQLCollection();
collection.setTypeName("PLSQL_P.PLSQL_ADDRESS_LIST");
collection.setCompatibleType("PLSQL_P_PLSQL_ADDRESS_LIST");
collection.setNestedType(record);
PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
call.setProcedureName("PLSQL_P.PLSQL_ADDRESS_LIST_IN");
call.addNamedArgument("P_ADDRESS_LIST", collection);
call.addNamedArgument("P_CITY", JDBCTypes.VARCHAR_TYPE);
DataModifyQuery query = new DataModifyQuery();
query.addArgument("P_ADDRESS_LIST", java.sql.Array.class);
query.addArgument("P_CITY", String.class);
query.setCall(call);
return query;
}
use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.
the class PLSQLProject method buildAddressOutDataQuery.
protected DatabaseQuery buildAddressOutDataQuery() {
PLSQLrecord record = buildAddressRowTypeDataRecord();
PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
call.setProcedureName("PLSQL_ADDRESS_OUT_DATA");
call.addNamedOutputArgument("P_ADDRESS", record);
call.addNamedOutputArgument("P_LOCAL", JDBCTypes.VARCHAR_TYPE, 30);
DataReadQuery query = new DataReadQuery();
query.dontMaintainCache();
query.setCall(call);
return query;
}
use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.
the class PLSQLrecordWithCompatibleTypeInTestSet method writeToXml.
@Test
public void writeToXml() {
PLSQLrecord r1 = new PLSQLrecord();
r1.setTypeName("emp%ROWTYPE");
r1.setCompatibleType("EMP_TYPE");
r1.addField("EMPNO", JDBCTypes.NUMERIC_TYPE, 4, 0);
r1.addField("ENAME", JDBCTypes.VARCHAR_TYPE, 10);
r1.addField("JOB", JDBCTypes.VARCHAR_TYPE, 9);
r1.addField("MGR", JDBCTypes.NUMERIC_TYPE, 4, 0);
r1.addField("HIREDATE", JDBCTypes.DATE_TYPE);
r1.addField("SAL", JDBCTypes.FLOAT_TYPE, 7, 2);
r1.addField("COMM", JDBCTypes.NUMERIC_TYPE, 7, 2);
r1.addField("DEPTNO", JDBCTypes.NUMERIC_TYPE, 2, 0);
// PROCEDURE REC_TEST(Z IN EMP%ROWTYPE)
PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
call.setProcedureName("REC_TEST");
call.addNamedArgument("Z", r1);
DataModifyQuery query = new DataModifyQuery();
query.addArgument("Z", Struct.class);
query.setCall(call);
project.getDescriptor(PLSQLEmployeeType.class).getQueryManager().addQuery("PLSQLrecordWithCompatibleTypeIn", query);
Project projectToXml = project.clone();
// trim off login 'cause it changes under test - this way, a comparison
// can be done to a control document
projectToXml.setDatasourceLogin(null);
XMLContext context = new XMLContext(workbenchXMLProject);
XMLMarshaller marshaller = context.createMarshaller();
Document doc = marshaller.objectToXML(projectToXml);
Document controlDoc = xmlParser.parse(new StringReader(PLSQLRECORD_WITHCOMPATIBLETYPE_IN_PROJECT_XML));
assertTrue("control document not same as instance document", comparer.isNodeEqual(controlDoc, doc));
}
Aggregations