Revision 13996 branches/v10/extensions/extOracleSpatial/src/es/prodevelop/cit/gvsig/fmap/drivers/jdbc/oracle/OracleSpatialDriver.java

View differences:

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