gvSIG bugs #5836

Cuando se crea una tabla en Oracle con nombre en minusculas luego falla al acceder a ella.

Added by Joaquín del Cerro Murciano about 1 month ago. Updated about 1 month ago.

Status:Fixed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Database
Target version:2.6.1-4006
Severity:Minor Add-on version:
gvSIG version:2.6.0 Add-on build:
gvSIG build:4000 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Si creamos una tabla con su nombre en minusculas en una BBDD de Oracle, al acceder a ella falla.
Esto a sido reportado con tablas bajo el control de versiones VCSGis al hacer un checkout en una BBDD de Oracle.
Probablemente es por que al crearla se pasa a mayusculas pero en la tabla de entidades esta guardada en minusculas, asi que en el siguiente acceso que se hace, en minusculas, no la encuentra.

Associated revisions

Revision 915
Added by Joaquín del Cerro Murciano about 1 month ago

refs #5836, modificaciones para forzar a que los nombres de las tablas se pasen a mayusculas siempre y no solo en el create table.

Revision 916
Added by Joaquín del Cerro Murciano about 1 month ago

refs #5836, Actualizados los test

History

#1 Updated by Joaquín del Cerro Murciano about 1 month ago

Parece que el proveedor de Oracle siempre crea las tablas con su nombre en mayusculas. Esto lo hace por que las funciones espaciales internas de Oracle buscan el nombre de la tabla siempre en mayusculas (por ejemplo en USER_SDO_GEOM_METADATA o al hacer CREATE INDEX sobre una columna geometria).

En una primera aproximacion, se ha modicicado el proveedor de Oracle para que convierta a mayusculas los nombres de tabla haya donde los use, no solo en el CREATE TABLE.

Esto hara que con las tablas que cremos nosotros en una BBDD de Oracle (que estaran siempre en mayusculas) funcione. Ahora bien, fallaria si intentamos acceder a tablas en una BBDD de Oracle que no hayamos creado nosotros y que tengan minusculas en el nombre. Para subsanar esto se ha añadido un parametro a la apertura de tablas de BBDD de Oracle "forceUppercaseInTableName" que por defecto estara a "true" y el usuario podra cambiar en caso de que lo necesite. Ademas, cuando se abre una tabla desde el dialogo de añadir capa (list sobre el explorer de Oracle), este pondra el parametro a "false" si detecta que hay minusculas en el nombre de tabla.

Hay que tener cuidado por que si se crean a mano tablas (por fuera de gvSIG desktop) con alguna columna geometria y el nombre de la tabla no esta en mayusculas dara problemas al acceder a ellas.

Tambien hay que tener en cuenta que estas modificaciones haran que no sea evidente como crear una tabla con nombre en minusculas desde la aplicacion gvSIG desktop en Oracle. Pasara por crear una conexion expecifica sobre la base de datos de Oracle indicando en esa conexion que no queremos forzar a mayusculas.

#2 Updated by Joaquín del Cerro Murciano about 1 month ago

  • Status changed from New to Fixed

Also available in: Atom PDF