Revision 38031 branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleStoreProvider.java
OracleStoreProvider.java | ||
---|---|---|
145 | 145 |
selectedFields = new HashMap(); |
146 | 146 |
String[] fields = sFields.split(","); |
147 | 147 |
for (int i=0 ; i<fields.length ; i++){ |
148 |
selectedFields.put(fields[i], Boolean.TRUE); |
|
148 |
selectedFields.put(fields[i].trim(), Boolean.TRUE);
|
|
149 | 149 |
} |
150 | 150 |
} |
151 | 151 |
} |
... | ... | |
347 | 347 |
if (attr.getDataType().getType() == DataTypes.GEOMETRY) { |
348 | 348 |
Geometry geom = (Geometry) featureProvider.get(attr.getIndex()); |
349 | 349 |
|
350 |
String ora_srid_str = null; |
|
351 |
boolean is_geo = false; |
|
352 |
boolean has_srid = false; |
|
350 |
STRUCT stru = null; |
|
353 | 351 |
|
354 |
Object ora_srid = getDynValue("ora_table_srid"); |
|
355 |
if (ora_srid != null) { |
|
356 |
if (ora_srid instanceof String) { |
|
357 |
ora_srid_str = (String) ora_srid; |
|
358 |
} else { |
|
359 |
if (ora_srid instanceof Integer) { |
|
360 |
ora_srid_str = "" + ((Integer) ora_srid).intValue(); |
|
361 |
} |
|
352 |
if (geom != null){ |
|
353 |
String ora_srid_str = null; |
|
354 |
boolean is_geo = false; |
|
355 |
boolean has_srid = false; |
|
356 |
|
|
357 |
Object ora_srid = getDynValue("ora_table_srid"); |
|
358 |
if (ora_srid != null) { |
|
359 |
if (ora_srid instanceof String) { |
|
360 |
ora_srid_str = (String) ora_srid; |
|
361 |
} else { |
|
362 |
if (ora_srid instanceof Integer) { |
|
363 |
ora_srid_str = "" + ((Integer) ora_srid).intValue(); |
|
364 |
} |
|
365 |
} |
|
362 | 366 |
} |
363 |
} |
|
364 |
|
|
365 |
has_srid = ora_srid_str != null && ora_srid_str.compareToIgnoreCase("0") != 0; |
|
366 |
is_geo = OracleUtils.getIsGCS( |
|
367 |
ora_srid_str, has_srid); |
|
368 |
|
|
369 |
// OracleUtils.is |
|
370 |
|
|
371 |
STRUCT stru = OracleUtils.buildSTRUCT( |
|
372 |
geom, 0, helper.getConnection(), |
|
373 |
ora_srid_str, has_srid, false, is_geo); |
|
374 |
values.add(stru); |
|
367 |
|
|
368 |
has_srid = ora_srid_str != null && ora_srid_str.compareToIgnoreCase("0") != 0; |
|
369 |
is_geo = OracleUtils.getIsGCS( |
|
370 |
ora_srid_str, has_srid); |
|
371 |
|
|
372 |
stru = OracleUtils.buildSTRUCT( |
|
373 |
geom, 0, helper.getConnection(), |
|
374 |
ora_srid_str, has_srid, false, is_geo); |
|
375 |
|
|
376 |
values.add(stru); |
|
377 |
}else{ |
|
378 |
values.add(null); |
|
379 |
} |
|
375 | 380 |
} else { |
376 | 381 |
super.addToListFeatureValues(featureProvider, attrOfList, attr, values); |
377 | 382 |
} |
... | ... | |
743 | 748 |
sql.append("from "); |
744 | 749 |
sql.append(params.tableID()); |
745 | 750 |
sql.append(' '); |
751 |
|
|
752 |
// Where |
|
753 |
appendWhere(sql, filter); |
|
754 |
|
|
755 |
if (limit == 0 && offset > 1) { |
|
756 |
StringBuilder romNumberQuery = new StringBuilder(); |
|
757 |
romNumberQuery.append("SELECT * FROM ( SELECT A.*, ROWNUM row_number FROM ("); |
|
758 |
romNumberQuery.append(sql); |
|
759 |
romNumberQuery.append(") A WHERE ROWNUM <= "); |
|
760 |
romNumberQuery.append(offset + 100); |
|
761 |
romNumberQuery.append(" ) WHERE row_number >"); |
|
762 |
romNumberQuery.append(offset); |
|
763 |
sql = romNumberQuery; |
|
764 |
} |
|
746 | 765 |
|
747 |
// Where |
|
748 |
appendWhere(sql, filter); |
|
749 |
|
|
750 | 766 |
// Order |
751 | 767 |
/* |
752 | 768 |
if ((params.getBaseOrder() != null && params.getBaseOrder() |
... | ... | |
766 | 782 |
*/ |
767 | 783 |
} |
768 | 784 |
// limit offset |
769 |
/* |
|
770 |
if (limit > 0 || offset > 0) { |
|
771 |
sql.append(helper.compoundLimitAndOffset(limit,offset)); |
|
772 |
}^ |
|
773 |
*/ |
|
785 |
|
|
774 | 786 |
logger.info("Executing SQL: " + sql.toString()); |
775 | 787 |
return sql.toString(); |
776 | 788 |
} |
Also available in: Unified diff