Publicado el 20 comentarios

La ventana de conexiones de SQL Developer de Oracle no aparece.

Después de instalar las librerias de desarrollo del cliente de Oracle 11g, mi SQL Developer comenzó a fallar. No mostraba la ventana de conexiónes y no era posible abrirla desde el menú view.
Esto se debe a que al instalar el ciente establece el directorio oracle por default al de la nueva instalación. Y al parecer hay alguna incompatibilidad entre los .jar que controlan las conexiones. Para solucionar esto tuve que hacer un archivo .bat donde especifico el ORACLE_HOME como el directorio donde se encuentra el directorio de instalación de mi SQL Developer y enseguida lanzo la aplicación.
Est ees el contenido de mi archivo .bat:

set ORACLE_HOME=%CD%
start sqldeveloper.exe

La primer línea permite que los directorios Oracle Home del registro de windows sean ignorados para que sólo use las librerias que trae consigo el SQL Developer.
Este .bat debe ser colocado en la carpeta de instalación de dicha aplicación.

Publicado el Dejar un comentario

Campo incremento en Oracle sin crear una Secuencia.

A veces es necesario generar en una consulta un campo que se incremente por si solo, de uno en uno. Para lograr esto Oracle cuenta con la funcion ROWNUM. Nos puede ser muy útil cuando queremos crear paginación de los resultados de una consulta en WEB.

Esta función permite generar una columna que va numerando de uno en uno los resultados de una consulta SQL. Pero hay que tener cuidado al utilizar esta función, ya que a veces su utilización puede hacerse incorrectamente.

Para una explicacion detallada de su uso te recomiendo este link, espero te sea de ayuda.

Ejemplo:

select ROWNUM, campo1, campo2 from tabla;

Publicado el 2 comentarios

ResultSet no se hace editable en Oracle

Si la consulta que construye el ResultSet en java es del tipo:

Select * from tabla;

El ResultSet no será editable aunque se le especifique. Para lograr que sea editable es necesario especificar explícitamente los campos en la consulta y que estos formen una identificación única (primary key):

Select campo1, campo2, … from tabla;.

Ejemplo de ResultSet editable:

    try {
        // Crea la sentencia que creará un ResultSet editable
        Statement stmt = conexion.createStatement(
            ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    
        // Se especifican los campos formadores de una identificacion única del registro para que se vuelva editable
        ResultSet resultSet = stmt.executeQuery("SELECT columna1, columna2 FROM tabla");
    } catch (SQLException e) {
      ....
    }