Diferencia entre revisiones de «CLOB de Oracle en Weblogic»
(ue) |
(→Ver también) |
||
| Línea 51: | Línea 51: | ||
* [[Oracle]] | * [[Oracle]] | ||
* [[JDBC]] | * [[JDBC]] | ||
| − | * [[ | + | * [[CLOB de Oracle]] |
* [http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] | * [http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] | ||
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] | *[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] | ||
Revisión del 17:07 9 oct 2009
Si tenemos una aplicación Java corriendo en WebLogic la forma de acceder a un CLOB de Oracle para escritura se maneja de una forma especial. en nuestro caso utilizamos JDBC y por consiguiente la clase weblogic.jdbc.vendor.oracle.OracleThinClob. Aqui dejamos un ejemplo:
import java.io.IOException;
import java.io.Writer;
import java.sql.Clob;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.support.JdbcDaoSupport;
import weblogic.jdbc.vendor.oracle.OracleThinClob;
import com.dosideas.dao.UnDao;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {
/**
* Query que busca el Clob por id.
* SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;
*/
private String query;
/**
* Obtiene el writer del Clob.
*/
public Writer obtenerWriter(Long id) {
Clob clobReporte = (Clob) getJdbcTemplate()
.queryForObject(getQuery(),
new Object[] {idPeticion },
new RowMapper() {
public Object mapRow(ResultSet resultSet, int rowNum)
throws SQLException {
return (Clob) resultSet.getClob(1);
}
});
Writer writerDelClob = null;
try {
writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();
} catch (SQLException e) {
// Tratar el error
}
return writerDelClob;
}