Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/resources/org/gvsig/oracle/dal/OracleParameters.xml
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/resources/org/gvsig/oracle/dal/OracleParameters.xml	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/resources/org/gvsig/oracle/dal/OracleParameters.xml	(revision 915)
@@ -36,6 +36,10 @@
           defaultValue="true" group="Advanced">
           <description></description>
         </field>
+	<field name="forceUppercaseInTableName" label="Force uppercase in table name" type="boolean" mandatory="false"
+          defaultValue="false" group="Advanced">
+          <description></description>
+        </field>
       </fields>
     </class>
 
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleStoreParameters.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleStoreParameters.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleStoreParameters.java	(revision 915)
@@ -82,4 +82,14 @@
     public void setUpdateSpatialIndexAndMetadata(boolean updateSpatialIndexAndMetadata) {
         this.helper.setUpdateSpatialIndexAndMetadata(updateSpatialIndexAndMetadata);
     }
+
+    @Override
+    public boolean getForceUppercaseInTableName() {
+        return this.helper.getForceUppercaseInTableName();
+    }
+
+    @Override
+    public void setForceUppercaseInTableName(boolean force) {
+        this.helper.setForceUppercaseInTableName(force);
+    }
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParameters.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParameters.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParameters.java	(revision 915)
@@ -17,4 +17,8 @@
     public boolean getUpdateSpatialIndexAndMetadata();
     
     public void setUpdateSpatialIndexAndMetadata(boolean updateSpatialIndexAndMetadata);
+    
+    public boolean getForceUppercaseInTableName();
+    
+    public void setForceUppercaseInTableName(boolean force);
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParametersHelper.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParametersHelper.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleConnectionParametersHelper.java	(revision 915)
@@ -87,4 +87,15 @@
     public void setUpdateSpatialIndexAndMetadata(boolean updateSpatialIndexAndMetadata) {
         setDynValue("updateSpatialIndexAndMetadata",updateSpatialIndexAndMetadata);
     }
+
+    public boolean getForceUppercaseInTableName() {
+        boolean force = (boolean)getDynValue("forceUppercaseInTableName");
+        return force;
+    }
+    
+    public void setForceUppercaseInTableName(boolean force) {
+        setDynValue("forceUppercaseInTableName",force);
+    }
+    
+    
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleExplorerParameters.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleExplorerParameters.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleExplorerParameters.java	(revision 915)
@@ -89,4 +89,14 @@
     public void setUpdateSpatialIndexAndMetadata(boolean updateSpatialIndexAndMetadata) {
         this.helper.setUpdateSpatialIndexAndMetadata(updateSpatialIndexAndMetadata);
     }
+
+    @Override
+    public boolean getForceUppercaseInTableName() {
+        return this.helper.getForceUppercaseInTableName();
+    }
+
+    @Override
+    public void setForceUppercaseInTableName(boolean force) {
+        this.helper.setForceUppercaseInTableName(force);
+    }
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleNewStoreParameters.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleNewStoreParameters.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleNewStoreParameters.java	(revision 915)
@@ -82,4 +82,14 @@
     public void setUpdateSpatialIndexAndMetadata(boolean updateSpatialIndexAndMetadata) {
         this.helper.setUpdateSpatialIndexAndMetadata(updateSpatialIndexAndMetadata);
     }
+
+    @Override
+    public boolean getForceUppercaseInTableName() {
+        return this.helper.getForceUppercaseInTableName();
+    }
+
+    @Override
+    public void setForceUppercaseInTableName(boolean force) {
+        this.helper.setForceUppercaseInTableName(force);
+    }
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleSQLBuilder.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleSQLBuilder.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/OracleSQLBuilder.java	(revision 915)
@@ -148,7 +148,11 @@
         STMT_GRANT_privileges_ON_table_TO_role = "GRANT {0} ON {1} TO {2}";
 
     }
-
+    
+    public OracleHelper getHelper() {
+        return (OracleHelper) super.getHelper();
+    }
+    
     @Override
     public Formatter formatter() {
         if (this.formatter == null) {
@@ -234,7 +238,7 @@
             StringBuilder builder = new StringBuilder();
 
             builder.append("CREATE TABLE ");
-            builder.append(getFullTableName(this.table()));
+            builder.append(this.table().toString());
             builder.append(" (");
             boolean first = true;
 
@@ -332,7 +336,7 @@
 
             if (pks.size() > 0) {
                 builder = new StringBuilder("ALTER TABLE ");
-                builder.append(getFullTableName(this.table()));
+                builder.append(this.table().toString());
                 builder.append(" ADD PRIMARY KEY (");
                 for (int i = 0; i < pks.size(); i++) {
                     if (i != 0) {
@@ -356,7 +360,7 @@
                     sql = MessageFormat.format(
                             ADD_SERIAL_COLUMN_TRIGGER_QUERY,
                             autoTriggerName,
-                            getFullTableName(this.table()),
+                            this.table().toString(),
                             column.getName(),
                             sequenceName
                     );
@@ -429,22 +433,6 @@
         }
     }
 
-    private String getFullTableName(TableNameBuilder table) {
-        if (table.has_database()) {
-            if (table.has_schema()) {
-                return as_identifier(table.getDatabase()) + "."
-                        + as_identifier(table.getSchema()) + "."
-                        + as_identifier(table.getName().toUpperCase());
-            }
-        } else {
-            if (table.has_schema()) {
-                return as_identifier(table.getSchema()) + "."
-                        + as_identifier(table.getName().toUpperCase());
-            }
-        }
-        return as_identifier(table.getName().toUpperCase());
-    }
-
     public class OracleSelectBuilder extends SelectBuilderBase {
 
         @Override
@@ -612,24 +600,45 @@
             return this.toString(formatter());
         }
 
+        protected String databaseName2provider() {
+            return null;
+        }
+
+        protected String schemaName2provider() {
+            return this.schemaName;
+        }
+
+        protected String tableName2provider() {
+            boolean forceUpperCase = true;
+            OracleConnectionParameters params = getHelper().getConnectionParameters();
+            if (params != null) {
+                forceUpperCase = params.getForceUppercaseInTableName();
+            }
+            if( forceUpperCase ) {
+                return StringUtils.upperCase(this.tableName);
+            }
+            return this.tableName;
+        }
+
+
         @Override
         public String toString(Formatter<ExpressionBuilder.Value> formatter) {
             if (formatter != null && formatter.canApply(this)) {
                 return formatter.format(this);
             }
             if (this.has_schema()) {
-                return as_identifier(this.schemaName) + "."
-                        + as_identifier(this.tableName);
+                return as_identifier(this.schemaName2provider()) + "."
+                        + as_identifier(this.tableName2provider());
             }
 
-            JDBCConnectionParameters params = helper.getConnectionParameters();
+            OracleConnectionParameters params = getHelper().getConnectionParameters();
             if (params != null) {
                 if ((StringUtils.isNotBlank(params.getUser()))) {
                     return as_identifier(params.getUser()) + "."
-                            + as_identifier(this.tableName);
+                            + as_identifier(this.tableName2provider());
                 }
             }
-            return as_identifier(this.tableName);
+            return as_identifier(this.tableName2provider());
         }
     }
 
@@ -1287,5 +1296,5 @@
     public int getMaxRecomendedSQLLength() {
         return 2048;
     }
-
+    
 }
Index: org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/operations/OracleListTablesOperation.java
===================================================================
--- org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/operations/OracleListTablesOperation.java	(revision 914)
+++ org.gvsig.oracle/trunk/org.gvsig.oracle/org.gvsig.oracle.provider/src/main/java/org/gvsig/oracle/dal/operations/OracleListTablesOperation.java	(revision 915)
@@ -18,6 +18,7 @@
 import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
 import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
 import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ListTablesOperation;
+import org.gvsig.oracle.dal.OracleStoreParameters;
 
 @SuppressWarnings("UseSpecificCatch")
 public class OracleListTablesOperation extends ListTablesOperation {
@@ -136,10 +137,15 @@
                 st = this.getConnection().createStatement();
                 rs = JDBCUtils.executeQuery(st, builder.toString());
                 while (rs.next()) {
-                    JDBCStoreParameters params = this.helper.createOpenStoreParameters(serverParameters);
+                    OracleStoreParameters params = (OracleStoreParameters) this.helper.createOpenStoreParameters(serverParameters);
                     params.setSchema(rs.getString(METADATA_COLUMN_TABLE_OWNER));
                     String table = rs.getString(METADATA_COLUMN_TABLE_NAME);
                     params.setTable(table);
+                    if( StringUtils.isNotBlank(table) && !table.equals(table.toUpperCase()) ) {
+                        // !aaa.equals(AAA) -> !false --> true
+                        // !AAA.equals(AAA) -> !true --> false
+                        params.setForceUppercaseInTableName(false);
+                    }
                     String authority = rs.getString(METADATA_COLUMN_AUTHORITY);
                     String srs = rs.getString(METADATA_COLUMN_SRID);
                     if(StringUtils.isBlank(authority)) {
