Revision 13996 branches/v10/extensions/extOracleSpatial/src/es/prodevelop/cit/gvsig/fmap/drivers/jdbc/oracle/OracleSpatialDriver.java
OracleSpatialDriver.java | ||
---|---|---|
2693 | 2693 |
// ----------------------------------------------------------- |
2694 | 2694 |
// ----------------------------------------------------------- |
2695 | 2695 |
public static String getDropTableSql(DBLayerDefinition dbLayerDef) { |
2696 |
return "DROP TABLE \"" + dbLayerDef.getTableName() +
|
|
2697 |
"\" CASCADE CONSTRAINTS";
|
|
2696 |
return "DROP TABLE " + dbLayerDef.getTableName() + |
|
2697 |
" CASCADE CONSTRAINTS"; |
|
2698 | 2698 |
} |
2699 | 2699 |
|
2700 | 2700 |
public static String getTableCreationSql(DBLayerDefinition dbLayerDef) { |
... | ... | |
2703 | 2703 |
String type = ""; |
2704 | 2704 |
String name = ""; |
2705 | 2705 |
|
2706 |
String resp = "CREATE TABLE \"" + dbLayerDef.getTableName() + "\" ( ";
|
|
2706 |
String resp = "CREATE TABLE " + dbLayerDef.getTableName() + " ( ";
|
|
2707 | 2707 |
|
2708 | 2708 |
for (int i = 0; i < flds.length; i++) { |
2709 | 2709 |
name = flds[i].getFieldName(); |
... | ... | |
2728 | 2728 |
resp = resp + "\"MDSYS\".\"SDO_GEOMETRY\""; |
2729 | 2729 |
resp = resp + ", "; |
2730 | 2730 |
|
2731 |
String pk = "CONSTRAINT \"" + dbLayerDef.getTableName() +
|
|
2732 |
"_PK\" PRIMARY KEY (\"" + OracleSpatialDriver.DEFAULT_ID_FIELD +
|
|
2731 |
String pk = "CONSTRAINT " + getDerivedNAme(dbLayerDef.getTableName(), "PK") +
|
|
2732 |
" PRIMARY KEY (\"" + OracleSpatialDriver.DEFAULT_ID_FIELD + |
|
2733 | 2733 |
"\") ENABLE"; |
2734 | 2734 |
|
2735 | 2735 |
resp = resp + pk + " )"; |
2736 | 2736 |
|
2737 | 2737 |
return resp; |
2738 | 2738 |
} |
2739 |
|
|
2740 |
private static String getDerivedNAme(String tname, String suffix) { |
|
2741 |
|
|
2742 |
int ind = tname.lastIndexOf("."); |
|
2743 |
if (ind == -1) { |
|
2744 |
|
|
2745 |
int l = Math.min(28, tname.length()); |
|
2746 |
return tname.substring(0, l) + "_" + suffix; |
|
2739 | 2747 |
|
2748 |
} else { |
|
2749 |
|
|
2750 |
String pre = tname.substring(0, ind); |
|
2751 |
String post = tname.substring(ind + 1, tname.length()); |
|
2752 |
int lpost = Math.min(24, post.length()); |
|
2753 |
int lpre = Math.min(3, pre.length()); |
|
2754 |
return pre.substring(0, lpre) + "_" + post.substring(0, lpost) + "_" + suffix; |
|
2755 |
} |
|
2756 |
|
|
2757 |
} |
|
2758 |
|
|
2740 | 2759 |
public static String getIndexCreationSql(DBLayerDefinition dbLayerDef) { |
2741 |
String resp = "CREATE INDEX \"" + dbLayerDef.getTableName() +
|
|
2742 |
"_SX\" ON \"" + dbLayerDef.getTableName() + "\" (\"" +
|
|
2760 |
String resp = "CREATE INDEX " + getDerivedNAme(dbLayerDef.getTableName(), "SX") +
|
|
2761 |
" ON " + dbLayerDef.getTableName() + " (\"" +
|
|
2743 | 2762 |
OracleSpatialDriver.DEFAULT_GEO_FIELD + |
2744 | 2763 |
"\") INDEXTYPE IS \"MDSYS\".\"SPATIAL_INDEX\" "; |
2745 | 2764 |
|
... | ... | |
2747 | 2766 |
} |
2748 | 2767 |
|
2749 | 2768 |
public static String getRemoveMetadataSql(DBLayerDefinition dbLayerDef) { |
2750 |
return "DELETE FROM " + ORACLE_GEOMETADATA_VIEW + |
|
2751 |
" WHERE TABLE_NAME = '" + dbLayerDef.getTableName() + "'"; |
|
2769 |
|
|
2770 |
String tname = dbLayerDef.getTableName(); |
|
2771 |
int ind = tname.lastIndexOf("."); |
|
2772 |
if (ind != -1) { |
|
2773 |
String schema = tname.substring(0, ind); |
|
2774 |
tname = tname.substring(ind + 1, tname.length()); |
|
2775 |
return "DELETE FROM " + ORACLE_GEOMETADATA_VIEW + |
|
2776 |
" WHERE TABLE_NAME = '" + tname + "' AND OWNER = '" + schema + "'"; |
|
2777 |
|
|
2778 |
} else{ |
|
2779 |
return "DELETE FROM " + ORACLE_GEOMETADATA_VIEW + |
|
2780 |
" WHERE TABLE_NAME = '" + tname + "'"; |
|
2781 |
} |
|
2752 | 2782 |
} |
2753 | 2783 |
|
2754 | 2784 |
/** |
... | ... | |
2835 | 2865 |
|
2836 | 2866 |
FieldDescription[] fieldsDescr = dbLayerDef.getFieldsDesc(); |
2837 | 2867 |
|
2838 |
String resp = "INSERT INTO \"" + dbLayerDef.getTableName() + "\" ( ";
|
|
2868 |
String resp = "INSERT INTO " + dbLayerDef.getTableName() + " ( ";
|
|
2839 | 2869 |
|
2840 | 2870 |
for (int i = 0; i < fieldsDescr.length; i++) { |
2841 | 2871 |
name = fieldsDescr[i].getFieldName(); |
... | ... | |
2942 | 2972 |
Value[] atts = feat.getAttributes(); |
2943 | 2973 |
FieldDescription[] _fieldsDescr = dbLayerDef.getFieldsDesc(); |
2944 | 2974 |
|
2945 |
String resp = "UPDATE \"" + dbLayerDef.getTableName() + "\" SET ";
|
|
2975 |
String resp = "UPDATE " + dbLayerDef.getTableName() + " SET ";
|
|
2946 | 2976 |
|
2947 | 2977 |
for (int i = 0; i < _fieldsDescr.length; i++) { |
2948 | 2978 |
name = _fieldsDescr[i].getFieldName(); |
... | ... | |
2998 | 3028 |
* @return the SQL sentence to perform the deletion |
2999 | 3029 |
*/ |
3000 | 3030 |
public static String getRowDeleteSql(DBLayerDefinition dbLayerDef, String id) { |
3001 |
String resp = "DELETE FROM \"" + dbLayerDef.getTableName() + "\"";
|
|
3031 |
String resp = "DELETE FROM " + dbLayerDef.getTableName();
|
|
3002 | 3032 |
resp = resp + " WHERE ROWID ='" + id + "'"; |
3003 | 3033 |
|
3004 | 3034 |
return resp; |
Also available in: Unified diff