Diferencia entre revisiones de «CLOB de Oracle en Weblogic»

De Dos Ideas.
Saltar a: navegación, buscar
(ue)
 
(Ver también)
Línea 51: Línea 51:
 
* [[Oracle]]
 
* [[Oracle]]
 
* [[JDBC]]
 
* [[JDBC]]
* [[CLOB_de_Oracle]]
+
* [[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;

   }

Ver también