Java Examples for oracle.sql.ARRAY
The following java examples will help you to understand the usage of oracle.sql.ARRAY. These source code samples are taken from different open source projects.
Example 1
| Project: quercus-master File: OracleModule.java View source code |
/**
* Binds PHP array to Oracle PL/SQL array by name.
*
* oci_bind_array_by_name() binds the PHP array
* varArray to the Oracle placeholder name, which
* points to Oracle PL/SQL array. Whether it will
* be used for input or output will be determined
* at run-time. The maxTableLength parameter sets
* the maximum length both for incoming and result
* arrays. Parameter maxItemLength sets maximum
* length for array items. If maxItemLength was
* not specified or equals to -1,
* oci_bind_array_by_name() will find the longest
* element in the incoming array and will use it as
* maximum length for array items. type parameter
* should be used to set the type of PL/SQL array
* items. See list of available types below.
*
* @param env the PHP executing environment
* @param stmt the Oracle statement
* @param name the Oracle placeholder
* @param varArray the array to be binded
* @param maxTableLength maximum table length
* @param maxItemLength maximum item length
* @param type one of the following types:
* <br/>
* SQLT_NUM - for arrays of NUMBER.
* <br/>
* SQLT_INT - for arrays of INTEGER
* (Note: INTEGER it is actually a synonym for
* NUMBER(38), but SQLT_NUM type won't work in
* this case even though they are synonyms).
* <br/>
* SQLT_FLT - for arrays of FLOAT.
* <br/>
* SQLT_AFC - for arrays of CHAR.
* <br/>
* SQLT_CHR - for arrays of VARCHAR2.
* <br/>
* SQLT_VCS - for arrays of VARCHAR.
* <br/>
* SQLT_AVC - for arrays of CHARZ.
* <br/>
* SQLT_STR - for arrays of STRING.
* <br/>
* SQLT_LVC - for arrays of LONG VARCHAR.
* <br/>
* SQLT_ODT - for arrays of DATE.
*
* @return true on success of false on failure
*/
public static boolean oci_bind_array_by_name(Env env, @NotNull OracleStatement stmt, @NotNull String name, @NotNull ArrayValue varArray, @NotNull int maxTableLength, @Optional("0") int maxItemLength, @Optional("0") int type) {
try {
// JDBC underlying connection
Connection conn = stmt.getJavaConnection();
// Oracle underlying statement
PreparedStatement oracleStmt = stmt.getPreparedStatement();
// Create an oracle.sql.ARRAY object to hold the values
// oracle.sql.ArrayDescriptor arrayDesc =
// oracle.sql.ArrayDescriptor.createDescriptor("number_varray", conn);
Class clArrayDescriptor = Class.forName("oracle.sql.ArrayDescriptor");
Method method = clArrayDescriptor.getDeclaredMethod("createDescriptor", new Class[] { String.class, Connection.class });
Object arrayDesc = method.invoke(clArrayDescriptor, new Object[] { "NUMBER_VARRAY", conn });
// int arrayValues[] = {123, 234};
Value[] valueArray = varArray.valuesToArray();
// {"aaa", "bbb", "ccc"};
Object[] objectArray = new Object[5];
for (int i = 0; i < valueArray.length; i++) {
Object obj = valueArray[i].toJavaObject();
objectArray[i] = obj;
}
// oracle.sql.ARRAY array
// = new oracle.sql.ARRAY(arrayDesc, conn, arrayValues);
Class clARRAY = Class.forName("oracle.sql.ARRAY");
Constructor constructor = clARRAY.getDeclaredConstructor(new Class[] { clArrayDescriptor, Connection.class, Object.class });
Array oracleArray = (Array) constructor.newInstance(new Object[] { arrayDesc, conn, objectArray });
if (name == null) {
return false;
}
if (!name.startsWith(":")) {
name = ":" + name;
}
if (name.length() < 2) {
return false;
}
// method.invoke(oracleStmt, new Object[] {name, oracleArray});
Integer index = stmt.getBindingVariable(name);
if (index == null) {
return false;
}
int i = index.intValue();
Object object = varArray.toJavaObject();
if (object instanceof OracleOciCollection) {
oracleArray = ((OracleOciCollection) object).getCollection();
oracleStmt.setArray(i, oracleArray);
} else if (varArray instanceof ArrayValueImpl) {
// oracleStmt.setObject(i, varArray.getKeyArray());
// Object objectArray[] = new Object[] {"aaa", "bbb", "ccc"};
// oracleStmt.setObject(i, objectArray);
oracleStmt.setArray(i, oracleArray);
} else {
oracleStmt.setObject(i, object);
}
return true;
} catch (Exception e) {
log.log(Level.FINE, e.toString(), e);
return false;
}
}Example 2
| Project: spring-data-jdbc-ext-master File: SqlArrayValue.java View source code |
/**
* The implementation for this specific type. This method is called internally by the
* Spring Framework during the out parameter processing and it's not accessed by application
* code directly.
* @see org.springframework.jdbc.core.support.AbstractSqlTypeValue
*/
protected Object createTypeValue(Connection conn, int sqlType, String typeName) throws SQLException {
if (typeName == null && defaultTypeName == null) {
throw new InvalidDataAccessApiUsageException("The typeName is null in this context. Consider setting the defaultTypeName.");
}
ArrayDescriptor arrayDescriptor = new ArrayDescriptor(typeName != null ? typeName : defaultTypeName, conn);
ARRAY array = new ARRAY(arrayDescriptor, conn, values);
return array;
}Example 3
| Project: i2b2-master File: TablePdoQueryVisitDao.java View source code |
/**
* Function to return EventSet from visit information
*
* @param encounterNumList
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return EventSet
* @throws I2B2DAOException
*/
public EventSet getVisitsByEncounterNum(List<String> encounterNumList, boolean detailFlag, boolean blobFlag, boolean statusFlag) throws I2B2DAOException {
EventSet eventSet = new EventSet();
RPDRPdoFactory.EventBuilder eventBuilder = new RPDRPdoFactory.EventBuilder(detailFlag, blobFlag, statusFlag);
System.out.println("input encounter list size " + encounterNumList.size());
Connection conn = null;
PreparedStatement query = null;
String tempTableName = "";
try {
conn = getDataSource().getConnection();
// create type StudentIdArrayType as varray(1000) of integer;
String selectClause = getSelectClause(detailFlag, blobFlag, statusFlag);
String joinClause = getLookupJoinClause(detailFlag, blobFlag, statusFlag);
String serverType = dataSourceLookup.getServerType();
if (serverType.equalsIgnoreCase(DAOFactoryHelper.ORACLE)) {
//(oracle.jdbc.driver.OracleConnection) ((WrappedConnection) conn)
oracle.jdbc.driver.OracleConnection conn1 = null;
// .getUnderlyingConnection();
String finalSql = "SELECT " + selectClause + " FROM " + getDbSchemaName() + "visit_dimension visit \n" + joinClause + " WHERE visit.encounter_num IN (SELECT * FROM TABLE (cast (? as QT_PDO_QRY_STRING_ARRAY)))";
log.debug("Executing sql[" + finalSql + "]");
query = conn1.prepareStatement(finalSql);
ArrayDescriptor desc = ArrayDescriptor.createDescriptor("QT_PDO_QRY_STRING_ARRAY", conn1);
oracle.sql.ARRAY paramArray = new oracle.sql.ARRAY(desc, conn1, encounterNumList.toArray(new String[] {}));
query.setArray(1, paramArray);
} else if (serverType.equalsIgnoreCase(DAOFactoryHelper.SQLSERVER) || serverType.equalsIgnoreCase(DAOFactoryHelper.POSTGRESQL)) {
log.debug("creating temp table");
java.sql.Statement tempStmt = conn.createStatement();
tempTableName = getDbSchemaName() + SQLServerFactRelatedQueryHandler.TEMP_PDO_INPUTLIST_TABLE;
try {
tempStmt.executeUpdate("drop table " + tempTableName);
} catch (SQLException sqlex) {
;
}
uploadTempTable(tempStmt, tempTableName, encounterNumList);
String finalSql = "SELECT " + selectClause + " FROM " + getDbSchemaName() + "visit_dimension visit \n" + joinClause + " WHERE visit.encounter_num IN (select distinct CAST(coalesce(char_param1, '0') as integer) FROM " + tempTableName + " ) order by encounter_num,patient_num ";
log.debug("Executing [" + finalSql + "]");
query = conn.prepareStatement(finalSql);
}
long startTimeSql = System.currentTimeMillis();
ResultSet resultSet = query.executeQuery();
long endTimeSql = System.currentTimeMillis();
long totalTimeSql = endTimeSql - startTimeSql;
log.debug("********* Total time for visit sql ****" + totalTimeSql);
long startTime = System.currentTimeMillis();
while (resultSet.next()) {
EventType event = eventBuilder.buildEventSet(resultSet, "i2b2", this.metaDataParamList);
eventSet.getEvent().add(event);
}
long endTime = System.currentTimeMillis();
long totalTime = endTimeSql - startTimeSql;
log.debug("********* Total time for visit objects ****" + totalTime);
} catch (SQLException sqlEx) {
log.error("", sqlEx);
throw new I2B2DAOException("sql exception", sqlEx);
} catch (IOException ioEx) {
log.error("", ioEx);
throw new I2B2DAOException("IO exception", ioEx);
} finally {
if (dataSourceLookup.getServerType().equalsIgnoreCase(DAOFactoryHelper.SQLSERVER)) {
PdoTempTableUtil tempUtil = new PdoTempTableUtil();
tempUtil.deleteTempTableSqlServer(conn, tempTableName);
}
try {
JDBCUtil.closeJdbcResource(null, query, conn);
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
return eventSet;
}Example 4
| Project: midao-master File: OracleTypeHandler.java View source code |
/**
* {@inheritDoc}
*/
public QueryParameters processInput(Statement stmt, QueryParameters params) throws SQLException {
QueryParameters result = new QueryParameters(params);
Object value = null;
Object convertedValue = null;
Connection conn = stmt.getConnection();
for (String parameterName : params.keySet()) {
value = params.getValue(parameterName);
convertedValue = null;
try {
if (params.getType(parameterName) == MjdbcTypes.ARRAY) {
if (value instanceof Object[]) {
//convertedValue = oraConn.createARRAY(convertJavaClassToSqlType(value.getClass().getComponentType().getSimpleName()), value);
convertedValue = MappingUtils.invokeFunction(conn, "createARRAY", new Class[] { String.class, Object.class }, new Object[] { convertJavaClassToSqlType(value.getClass().getComponentType().getSimpleName()), value });
} else if (value instanceof Collection) {
Object[] valueArray = ((Collection) value).toArray();
//convertedValue = oraConn.createARRAY(convertJavaClassToSqlType(valueArray.getClass().getComponentType().getSimpleName()), valueArray);
convertedValue = MappingUtils.invokeFunction(conn, "createARRAY", new Class[] { String.class, Object.class }, new Object[] { convertJavaClassToSqlType(valueArray.getClass().getComponentType().getSimpleName()), valueArray });
} else {
convertedValue = value;
}
} else if (params.getType(parameterName) == MjdbcTypes.BLOB) {
Object blob = null;
Class blobClazz = Class.forName("oracle.sql.BLOB");
int blobSessionDuration = (Integer) MappingUtils.returnStaticField(blobClazz, "DURATION_SESSION");
// creating object only if it is one of 3 supported types
if (value instanceof String) {
//blob = oracle.sql.BLOB.createTemporary(conn, false, oracle.sql.BLOB.DURATION_SESSION);
blob = MappingUtils.invokeStaticFunction(blobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, blobSessionDuration });
convertedValue = TypeHandlerUtils.convertBlob(blob, (String) value);
} else if (value instanceof InputStream) {
//blob = oracle.sql.BLOB.createTemporary(conn, false, oracle.sql.BLOB.DURATION_SESSION);
blob = MappingUtils.invokeStaticFunction(blobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, blobSessionDuration });
convertedValue = TypeHandlerUtils.convertBlob(blob, (InputStream) value);
} else if (value instanceof byte[]) {
//blob = oracle.sql.BLOB.createTemporary(conn, false, oracle.sql.BLOB.DURATION_SESSION);
blob = MappingUtils.invokeStaticFunction(blobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, blobSessionDuration });
convertedValue = TypeHandlerUtils.convertBlob(blob, (byte[]) value);
} else {
convertedValue = value;
}
} else if (params.getType(parameterName) == MjdbcTypes.CLOB) {
Object clob = null;
Class clobClazz = Class.forName("oracle.sql.CLOB");
int clobSessionDuration = (Integer) MappingUtils.returnStaticField(clobClazz, "DURATION_SESSION");
if (value instanceof String) {
//clob = oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION);
clob = MappingUtils.invokeStaticFunction(clobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, clobSessionDuration });
convertedValue = TypeHandlerUtils.convertClob(clob, (String) value);
} else if (value instanceof InputStream) {
//clob = oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION);
clob = MappingUtils.invokeStaticFunction(clobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, clobSessionDuration });
convertedValue = TypeHandlerUtils.convertClob(clob, (InputStream) value);
} else if (value instanceof byte[]) {
//clob = oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION);
clob = MappingUtils.invokeStaticFunction(clobClazz, "createTemporary", new Class[] { Connection.class, boolean.class, int.class }, new Object[] { conn, false, clobSessionDuration });
convertedValue = TypeHandlerUtils.convertClob(clob, (byte[]) value);
} else {
convertedValue = value;
}
} else if (params.getType(parameterName) == MjdbcTypes.SQLXML) {
// as far as I know - it is not completely supported by Oracle JDBC Driver.
// below you will find example usage of XMLType.
// Other option would be using TO_CLOB on SQLXML(XMLType) type in PL/SQL.
// oracle.xdb.XMLType
// You also need to include the xdb.jar and xmlparserv2.jar files in the
// classpath environment variable to use SQLXML type data, if they are
// not already present in the classpath.
/*
if (value instanceof String) {
XMLType xmlType = oracle.xdb.XMLType.createXML(conn, (String) value);
convertedValue = xmlType;
} else if (value instanceof InputStream) {
XMLType xmlType = oracle.xdb.XMLType.createXML(conn, (InputStream) value);
convertedValue = xmlType;
} else if (value instanceof byte[]) {
XMLType xmlType = oracle.xdb.XMLType.createXML(conn, new String((byte[]) value));
convertedValue = xmlType;
} else {
convertedValue = value;
}
*/
convertedValue = value;
} else if (params.getType(parameterName) == MjdbcTypes.VARCHAR && TypeHandlerUtils.isJDBC3(overrider) == true && value instanceof Reader) {
convertedValue = TypeHandlerUtils.toString((Reader) value);
} else if (params.getType(parameterName) == MjdbcTypes.VARBINARY && TypeHandlerUtils.isJDBC3(overrider) == true && value instanceof InputStream) {
convertedValue = TypeHandlerUtils.toByteArray((InputStream) value);
} else {
convertedValue = value;
}
} catch (MjdbcException ex) {
logger.warning("Failed to process resource: " + parameterName + ". Might lead to error during query execution!!");
convertedValue = value;
} catch (ClassNotFoundException e) {
logger.warning("Failed to process resource: " + parameterName + " due to ClassNotFoundException. Please check if Oracle JDBC Driver is present in class path");
convertedValue = value;
}
// any other type processing can be added to DataBase specific TypeHandler implementation.
result.updateValue(parameterName, convertedValue);
}
return result;
}Example 5
| Project: Wicket---Oracle-Template-master File: AbstractOracleDAO.java View source code |
/**
* Enable several Oracle roles at once
*/
protected final void setRoles(final String[] pRoles) throws SQLException {
final String dbStatement = " begin " + " sys.dbms_application_info.set_module( module_name => ? , action_name => ? ); " + " app_user.pk_set_app_user_roles.pr_enable_roles( p_role_list => ? );" + " end; ";
OracleCallableStatement dbCstmt = null;
try {
LOGGER.debug("Set db role");
dbCstmt = (OracleCallableStatement) getConnection().prepareCall(dbStatement);
LOGGER.debug("DB statement prepared -> {}", dbStatement);
/* transform the pRoles string array into a table of Oracle objects */
STRUCT[] dbRoles = new STRUCT[pRoles.length];
LOGGER.debug("Role STRUCT[] built : size -> {}", pRoles.length);
StructDescriptor tyString = StructDescriptor.createDescriptor("APP_UTILITY.TY_STRING", getConnection());
LOGGER.debug("ty_string structure retrieved");
ArrayDescriptor ttyString = ArrayDescriptor.createDescriptor("APP_UTILITY.TTY_STRING", getConnection());
LOGGER.debug("tty_string structure retrieved");
for (int i = 0; i < dbRoles.length; i++) {
String[] role = { pRoles[i] };
dbRoles[i] = new STRUCT(tyString, getConnection(), role);
}
/* if we've got this far our ARRAY is almost prepared */
dbCstmt.setString(1, "PK_SET_APP_USER_ROLES");
dbCstmt.setString(2, "PR_ENABLE_ROLES");
dbCstmt.setARRAY(3, new ARRAY(ttyString, getConnection(), dbRoles));
LOGGER.debug("DB params registered");
dbCstmt.execute();
LOGGER.debug("DB statement executed");
} catch (SQLException sqle) {
LOGGER.error("SQL Exception whilst setting role -> {}; role -> {}; error code -> {}; sql state -> {}", new Object[] { sqle.getMessage(), pRoles, sqle.getErrorCode(), sqle.getSQLState() });
throw sqle;
} finally {
CloseResource.close(dbCstmt);
}
}Example 6
| Project: enerko-reports2-master File: PckEnerkoReports2.java View source code |
public static void createAndEvaluateReport(final String statement, final String methodName, final BLOB template, final ARRAY arguments, final ARRAY[] result) throws SQLException, IOException { final Report report; boolean isStatementBased = statement != null && statement.trim().length() != 0; boolean isFunctionBased = methodName != null && methodName.trim().length() != 0; final InputStream $template = template == null ? null : template.getBinaryStream(); if (isStatementBased && !isFunctionBased) report = reportEngine.createReportFromStatement(statement, $template); else if (isFunctionBased && !isStatementBased) report = reportEngine.createReport(methodName, $template, extractVargs(arguments)); else { if ($template != null) $template.close(); throw new RuntimeException("A report must either be statement or function based!"); } result[0] = convertListOfCellsToOracleArray(report.evaluateWorkbook()); }
Example 7
| Project: geotools-tike-master File: QuickOracleOnlineTest.java View source code |
public void testMetadataDIMInfo() throws Exception {
if (conn == null)
return;
Statement st = conn.createStatement();
st.execute("SELECT srid,diminfo FROM USER_SDO_GEOM_METADATA where TABLE_NAME = 'ORA_TEST_LINES'");
ResultSet set = st.getResultSet();
assertTrue(set.next());
int srid = set.getInt(1);
CoordinateReferenceSystem crs = data.determineCRS(srid);
ARRAY array = (ARRAY) set.getObject(2);
Datum data[] = array.getOracleArray();
double minx = Double.NaN;
double miny = Double.NaN;
double maxx = Double.NaN;
double maxy = Double.NaN;
for (int i = 0; i < data.length; i++) {
Datum datum = data[i];
System.out.println(datum.getClass());
STRUCT diminfo = (STRUCT) datum;
Datum info[] = diminfo.getOracleAttributes();
String ord = info[0].stringValue();
double min = info[1].doubleValue();
double max = info[2].doubleValue();
// TODO use this for accurate JTS PercisionModel!
double precision = info[3].doubleValue();
if ("X".equalsIgnoreCase(ord)) {
minx = min;
maxx = max;
}
if ("Y".equalsIgnoreCase(ord)) {
miny = min;
maxy = max;
}
}
Envelope extent = new Envelope(minx, maxx, miny, maxy);
ReferencedEnvelope ref = new ReferencedEnvelope(extent, crs);
assertFalse(ref.isNull());
}Example 8
| Project: symmetric-ds-master File: OracleBulkDatabaseWriter.java View source code |
protected void flush() {
statistics.get(batch).startTimer(DataWriterStatisticConstants.DATABASEMILLIS);
try {
if (rowArrays.size() > 0) {
JdbcSqlTransaction jdbcTransaction = (JdbcSqlTransaction) transaction;
Connection c = jdbcTransaction.getConnection();
Connection oracleConnection = jdbcExtractor.getNativeConnection(c);
Column[] columns = targetTable.getColumns();
StringBuilder questions = new StringBuilder();
for (int i = 0; i <= columns.length; i++) {
questions.append("?, ");
}
questions.replace(questions.length() - 2, questions.length(), "");
String sql = String.format("{ call %s(%s) }", buildProcedureName("i", targetTable), questions);
OracleCallableStatement stmt = (OracleCallableStatement) oracleConnection.prepareCall(sql);
for (int i = 0; i < columns.length; i++) {
Column column = columns[i];
ArrayDescriptor type = ArrayDescriptor.createDescriptor(getTypeName(column.getMappedTypeCode()), oracleConnection);
List<Object> columnData = rowArrays.get(i);
ARRAY array = new ARRAY(type, oracleConnection, columnData.toArray(new Object[columnData.size()]));
stmt.setObject(i + 1, array);
}
int errorIndex = columns.length + 1;
stmt.registerOutParameter(errorIndex, OracleTypes.ARRAY, getTypeName(Types.INTEGER));
stmt.execute();
ARRAY errorsArray = stmt.getARRAY(errorIndex);
int[] errors;
if (errorsArray != null) {
errors = errorsArray.getIntArray();
} else {
errors = new int[0];
}
if (errors.length > 0) {
// set the statement count so the failed row number get reported correctly
statistics.get(batch).set(DataWriterStatisticConstants.STATEMENTCOUNT, errors[0]);
throw new BulkSqlException(errors, lastEventType.toString(), sql);
}
}
} catch (SQLException ex) {
throw platform.getSqlTemplate().translate(ex);
} finally {
lastEventType = null;
rowArrays.clear();
statistics.get(batch).stopTimer(DataWriterStatisticConstants.DATABASEMILLIS);
}
}Example 9
| Project: geotools_trunk-master File: GeometryConverter.java View source code |
/**
* Convert provided SDO_GEOMETRY to JTS Geometry.
* <p>
* Will return <code>null</code> as <code>null</code>.
* </p>
*
* @param sdoGeometry datum STRUCT to be converted to a double[]
*
* @return JTS <code>Geometry</code> representing the provided <code>datum</code>
* @throws SQLException
*
* @see net.refractions.jspatial.Converter#toObject(oracle.sql.STRUCT)
*/
public Geometry asGeometry(STRUCT sdoGeometry) throws SQLException {
// Note Returning null for null Datum
if (sdoGeometry == null)
return null;
Datum data[] = sdoGeometry.getOracleAttributes();
final int GTYPE = asInteger(data[0], 0);
final int SRID = asInteger(data[1], SDO.SRID_NULL);
final double POINT[] = asDoubleArray((STRUCT) data[2], Double.NaN);
final int ELEMINFO[] = asIntArray((ARRAY) data[3], 0);
final double ORDINATES[] = asDoubleArray((ARRAY) data[4], Double.NaN);
;
return SDO.create(geometryFactory, GTYPE, SRID, POINT, ELEMINFO, ORDINATES);
}Example 10
| Project: Labos3eSup-master File: OracleAccess.java View source code |
public int insertMovie(Movies movie, int physique, int digitale) {
try {
ArrayDescriptor tabVarchar = ArrayDescriptor.createDescriptor("VARCHAR2_T", con);
ArrayDescriptor tabBlob = ArrayDescriptor.createDescriptor("BLOB_T", con);
/*Identifiant du film*/
/**********************************************/
csmt.setInt(1, movie.getId());
/*Imdb id du film*/
/**********************************************/
csmt.setString(2, movie.getImdb_id());
/*Nom du film*/
/**********************************************/
csmt.setString(3, movie.getName());
/*Résumé du film*/
/**********************************************/
csmt.setString(4, movie.getOverview());
/*Note du film*/
/**********************************************/
csmt.setFloat(5, (movie.getRating() == -1 ? -1 : movie.getRating()));
/*Date de sortie du film*/
/**********************************************/
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date dateSql = null;
java.util.Date dateJava = null;
try {
dateJava = sdf.parse(movie.getReleased());
dateSql = new java.sql.Date(dateJava.getTime());
} catch (ParseException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
csmt.setDate(6, dateSql);
/*Adresse de la bande annonce du film*/
/**********************************************/
csmt.setString(7, movie.getTrailer());
/*Est-ce que le film est traduit ?*/
/**********************************************/
csmt.setBoolean(8, movie.isTranslated());
/*Nombre de vote pour la popularité du film*/
/**********************************************/
csmt.setInt(9, (movie.getVotes() == -1 ? null : movie.getVotes()));
/*Liste des acteurs du film*/
/**********************************************/
String[] nomActeurs = getTabCast(movie.getCast(), "Actor");
if (nomActeurs == null) {
csmt.setNull(10, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomActeurs);
csmt.setArray(10, sqlArray);
sqlArray.free();
sqlArray = null;
}
/*Liste des personnages joué par les acteurs*/
/**********************************************/
LinkedList<String> characters = null;
if (nomActeurs != null) {
for (int i = 0; i < nomActeurs.length; i++) {
String name = getCharacter(nomActeurs[i], movie);
if (characters == null)
characters = new LinkedList<>();
characters.add(name);
}
}
String[] nomCharacters = null;
if (characters != null) {
int cpt = 0;
nomCharacters = new String[characters.size()];
for (String name : characters) {
nomCharacters[cpt] = name;
cpt++;
}
Array sqlArray = new ARRAY(tabVarchar, con, nomCharacters);
csmt.setArray(11, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
} else {
csmt.setNull(11, OracleTypes.ARRAY, "VARCHAR2_T");
}
/*Liste des réalisateurs du film*/
/**********************************************/
String[] nomRealisateur = getTabCast(movie.getCast(), "Director");
if (nomRealisateur == null) {
csmt.setNull(12, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomRealisateur);
csmt.setArray(12, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
/*Liste des pays qui ont produit le film*/
/**********************************************/
String[] nomCountries = getTabCountries(movie.getCountries());
if (nomCountries == null) {
csmt.setNull(13, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomCountries);
csmt.setArray(13, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
/*Copie physique et digitale.*/
/**********************************************/
csmt.setInt(14, physique);
csmt.setInt(15, digitale);
/*Liste des studios qui ont produit le film*/
/**********************************************/
String[] nomStudios = getTabStudios(movie.getStudios());
if (nomStudios == null) {
csmt.setNull(16, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomStudios);
csmt.setArray(16, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
/*Liste des genres du film*/
/**********************************************/
String[] nomGenres = getTabGenres(movie.getGenres());
if (nomGenres == null) {
csmt.setNull(17, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomGenres);
csmt.setArray(17, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
/**********************************************/
if (movie.getCertification() == null) {
csmt.setNull(18, OracleTypes.VARCHAR);
} else {
String certification = getCertification(movie.getCertification());
csmt.setString(18, certification);
}
/*Liste des langues du film*/
/**********************************************/
String[] nomLangues = getTabLangues(movie.getLanguages_spoken());
if (nomLangues == null) {
csmt.setNull(19, OracleTypes.ARRAY, "VARCHAR2_T");
} else {
Array sqlArray = new ARRAY(tabVarchar, con, nomLangues);
csmt.setArray(19, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
BLOB[] tabBlobs = getTabImage(movie.getId());
if (tabBlobs == null) {
csmt.setNull(20, OracleTypes.ARRAY, "BLOB_T");
} else {
Array sqlArray = new ARRAY(tabBlob, con, tabBlobs);
csmt.setArray(20, sqlArray);
sqlArray.free();
sqlArray = null;
nomActeurs = null;
}
csmt.setInt(21, movie.getRuntime());
} catch (SQLException ex) {
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
}
try {
/*Execution de la procédure*/
csmt.execute();
//getImage(movie.getId(), movie.getBackdrops());
/*On ferme la transaction*/
csmt.close();
finish("commit");
return 1;
} catch (SQLException ex) {
finish("rollback");
Logger.getLogger(OracleAccess.class.getName()).log(Level.SEVERE, null, ex);
return -1;
}
}Example 11
| Project: qafe-platform-master File: BaseCall.java View source code |
private void registerOutput(Connection conn, CallableStatement callStmt, CallArgument argument, List<Out> outputs) throws SQLException {
if (argument == null) {
return;
}
AdapterMapping outputAdapter = getOutputAdapter(argument, outputs);
int argumentIndex = argument.getSequence();
int argumentType = argument.getSqlType();
String argumentTypeName = getArgumentTypeName(outputAdapter, argument.getTypeName());
if (isStructType(argument)) {
argumentType = Types.STRUCT;
callStmt.registerOutParameter(argumentIndex, argumentType, argumentTypeName);
} else if (isArrayOfStructType(argument)) {
argumentType = Types.ARRAY;
callStmt.registerOutParameter(argumentIndex, argumentType, argumentTypeName);
} else {
callStmt.registerOutParameter(argumentIndex, argumentType);
}
}Example 12
| Project: org.eclipse.ecr-master File: DialectOracle.java View source code |
private static void init() throws SQLException {
if (!initialized) {
try {
Class<?> arrayDescriptorClass = Class.forName("oracle.sql.ArrayDescriptor");
arrayDescriptorConstructor = arrayDescriptorClass.getConstructor(String.class, Connection.class);
Class<?> arrayClass = Class.forName("oracle.sql.ARRAY");
arrayConstructor = arrayClass.getConstructor(arrayDescriptorClass, Connection.class, Object.class);
} catch (Exception e) {
throw new SQLException(e.toString());
}
initialized = true;
}
}Example 13
| Project: JT-master File: OraReader.java View source code |
/**
* Reads a {@link Geometry} representing the MDSYS.GEOMETRY
* provided in the STRUCT. The type of geometry created
* depends on the Geometry type specified within the STRUCT.
* The SRID of the created geometry is set to be the same as the input SRID.
*
* @param struct The MDSYS.GEOMETRY Object to decode
* @return the Geometry if one could be created, null otherwise
*
* @throws SQLException if a read error occurs while accessing the struct
* @throws IllegalArgumentException if an unsupported geometry type or encoding error is found
*/
public Geometry read(STRUCT struct) throws SQLException {
// Return null for null input
if (struct == null)
return null;
Datum data[] = struct.getOracleAttributes();
int gType = OraUtil.toInteger(data[0], 0);
int SRID = OraUtil.toInteger(data[1], OraGeom.SRID_NULL);
double point[] = OraUtil.toDoubleArray((STRUCT) data[2], Double.NaN);
int elemInfo[] = OraUtil.toIntArray((ARRAY) data[3], 0);
double ordinates[] = OraUtil.toDoubleArray((ARRAY) data[4], Double.NaN);
OraGeom oraGeom = new OraGeom(gType, SRID, point, elemInfo, ordinates);
Geometry geom = read(oraGeom);
// Set SRID of created Geometry to be the same as input (regardless of geomFactory SRID)
if (geom != null)
geom.setSRID(SRID);
return geom;
}Example 14
| Project: geotools-master File: OracleDialect.java View source code |
/**
*
* @param rs result set of the dimension info query
* @param column column of the dimension info
* @return the envelope out of the dimension info
* (assumption: x before y or longitude before latitude)
* or null, if no data is in the specified column
* @throws SQLException if dimension info can not be parsed
* @author Hendrik Peilke
*/
private Envelope decodeDiminfoEnvelope(ResultSet rs, int column) throws SQLException {
ARRAY returnArray = (ARRAY) rs.getObject(column);
if (returnArray == null) {
throw new SQLException("no data inside the specified column");
}
Datum data[] = returnArray.getOracleArray();
if (data.length < 2) {
throw new SQLException("too little dimension information found in sdo_geom_metadata");
}
Datum[] xInfo = ((STRUCT) data[0]).getOracleAttributes();
Datum[] yInfo = ((STRUCT) data[1]).getOracleAttributes();
Double minx = xInfo[1].doubleValue();
Double maxx = xInfo[2].doubleValue();
Double miny = yInfo[1].doubleValue();
Double maxy = yInfo[2].doubleValue();
return new Envelope(minx, maxx, miny, maxy);
}Example 15
| Project: eclipselink.runtime-master File: Oracle8Platform.java View source code |
/**
* INTERNAL:
* Platforms that support java.sql.Array may override this method.
* @return Array
*/
@Override
public Array createArray(String elementDataTypeName, Object[] elements, Connection connection) throws SQLException {
return new oracle.sql.ARRAY(new oracle.sql.ArrayDescriptor(elementDataTypeName, connection), connection, elements);
}Example 16
| Project: druid-master File: OracleMockResultSet.java View source code |
@Override
public ARRAY getARRAY(int arg0) throws SQLException {
// TODO Auto-generated method stub
return null;
}