OSDN Git Service

20170513
authorkuboryu <kuboryu@yahoo.co.jp>
Fri, 12 May 2017 22:25:44 +0000 (07:25 +0900)
committerkuboryu <kuboryu@yahoo.co.jp>
Fri, 12 May 2017 22:25:44 +0000 (07:25 +0900)
com/rapide_act/CmnProps.java
com/rapide_act/RapideMetaLoader.java
com/rapide_act/RapideMetaUnloader.java

index 10b2106..1825374 100644 (file)
@@ -39,6 +39,8 @@ public class CmnProps{
        protected static final String [] DB_TYPE_NAME = {"ORACLE", "SQLSERVER", "MYSQL", "DB2", "POSTGRESQL", "HIRDB"};
        protected static final String [] DB_SQL_QUOTEDS = {"\"", "[", "`", "\"", "\"", "\""};
        protected static final String [] DB_SQL_QUOTEDE = {"\"", "]", "`", "\"", "\"", "\""};
+       protected static final String [] SQL_TERMINATOR = {";",  System.getProperty("line.separator") + "GO", ";", ";", ";", ";"};
+       protected static final String [] SQL_PREFIX = {"@", ":r ", "", "", "", ""};
        protected static final int MASK_PTN_ALL = 0;
        protected static final int MASK_PTN_ALT = 1;
        protected static final int MASK_PTN_EDGE = 2;
index a817d6f..81e0fb4 100644 (file)
@@ -73,7 +73,7 @@ public class RapideMetaLoader{
                        cp = new CmnProps();
                        cp.setProperty(database);
                        
-                       if (cp.dbType != cp.DB_TYPE_ORACLE){
+                       if (cp.dbType > cp.DB_TYPE_SQLSERVER || cp.dbType <0){
                                throw new Exception("\83f\81[\83^\83x\81[\83X\82ª\91Î\8fÛ\8aO\82Å\82·\81B[" + cp.DB_TYPE_NAME[cp.dbType] + "]");
                        }
                        if(cp.inFolder != null){
@@ -180,12 +180,22 @@ public class RapideMetaLoader{
                if (infile.exists()){
                        br = new BufferedReader(new InputStreamReader(new FileInputStream(_infile), _cp.fileEncoding));
                        while((strLine=br.readLine()) != null){
-                               strMltLine += _cp.inColLineSeparator + strLine;
+                               if (_cp.dbType == _cp.DB_TYPE_SQLSERVER){
+                                       if(!strLine.equals("GO")){
+                                               strMltLine += _cp.inColLineSeparator + strLine;
+                                       }
+                               } else {
+                                       strMltLine += _cp.inColLineSeparator + strLine;
+                               }
                        }
                        if(_isReplace){
                                if(!strMltLine.equals("")){
                                        try {
-                                               _stmt = _dao.prepareSql(strMltLine.replaceAll("\r",""));
+                                               if (_cp.dbType == _cp.DB_TYPE_ORACLE){
+                                                       _stmt = _dao.prepareSql(strMltLine.replaceAll("\r",""));
+                                               } else {
+                                                       _stmt = _dao.prepareSql(strMltLine);
+                                               }
                                                _stmt.executeUpdate();
                                                if(_stmt != null){
                                                        _stmt.close();
@@ -202,7 +212,11 @@ public class RapideMetaLoader{
                                for(int l = 0;l<sqlLine.length;l++){
                                        if(!sqlLine[l].equals("")){
                                                try {
-                                                       _stmt = _dao.prepareSql(sqlLine[l].replaceAll("\r",""));
+                                                       if (_cp.dbType == _cp.DB_TYPE_ORACLE){
+                                                               _stmt = _dao.prepareSql(sqlLine[l].replaceAll("\r",""));
+                                                       } else {
+                                                               _stmt = _dao.prepareSql(sqlLine[l]);
+                                                       }
                                                        _stmt.executeUpdate();
                                                        if(_stmt != null){
                                                                _stmt.close();
index 7b73daa..275fcbf 100644 (file)
@@ -57,8 +57,8 @@ public class RapideMetaUnloader{
        protected static final String [] DB_SQL_QUOTED_S = {"\"", "[", "`", "\"", "\"", "\""};
        protected static final String [] DB_SQL_QUOTED_E = {"\"", "]", "`", "\"", "\"", "\""};
        private static final String [] DROP_OPTION = {" CASCADE CONSTRAINT PURGE", "", "", "", "", ""};
-       private static final String [] SQL_TERMINATOR = {";", lineSeparator + "GO", ";", ";", ";", ";"};
-       private static final String [] SQL_PREFIX = {"@", ":r ", "", "", "", ""};
+//     private static final String [] cp.SQL_TERMINATOR = {";", lineSeparator + "GO", ";", ";", ";", ";"};
+//     private static final String [] cp.SQL_PREFIX = {"@", ":r ", "", "", "", ""};
        private static final String [][] sql =  {
                {       //ORACLE
                "select "
@@ -291,13 +291,11 @@ public class RapideMetaUnloader{
                     + "order by "
                     + " a.name",
                "select "
-                    + " name as object_name, 'PROCEDURE' as object_type from sys.objects where type ='P'"
+                    + " name as object_name, 'PROCEDURE' as object_type from sys.procedures"
                     + " union select "
                     + " name as object_name, 'FUNCTION' as object_type from sys.objects where type in('FN', 'FS', 'FT', 'IF', 'TF') "
                     + " union select "
                     + " name as object_name, 'TRIGGER' as object_type from sys.triggers "
-                    + " union select "
-                    + " name as object_name, 'TYPE' as object_type from sys.table_types "
                     + " order by object_name,object_type ",
                "select "
                     + "  name as sequence_name,"
@@ -396,13 +394,29 @@ public class RapideMetaUnloader{
        };
        private static String sql_proc[] = {
                "select text from user_source where type = ? and name = ? order by line",
-               "select c.definition "
-                    + "from sys.views a "
+               "select d.definition "
+                    + "from "
+                    + " (select a.name,'PROCEDURE' as type,c.definition "
+                    + "from sys.procedures a "
                     + "inner join sys.objects b "
-                    + "on  b.object_id = a.object_id "
+                    + "on b.object_id = a.object_id "
                     + "inner join sys.sql_modules c "
                     + "on  c.object_id = b.object_id "
-                    + "where a.name = ?"
+                    + "union select "
+                    + " a.name,'FUNCTION' as type,c.definition "
+                    + "from sys.objects a "
+                    + "inner join sys.objects b "
+                    + "on  b.object_id = a.object_id "
+                    + "inner join sys.sql_modules c "
+                    + "on  c.object_id = b.object_id and a.type in('FN', 'FS', 'FT', 'IF', 'TF') "
+                    + "union select "
+                    + "a.name,'TRIGGER' as type,c.definition "
+                    + "from sys.triggers a "
+                    + "inner join sys.objects b "
+                    + "on  b.object_id = a.object_id "
+                    + "inner join sys.sql_modules c "
+                    + "on  c.object_id = b.object_id) d "
+                    + "where d.type = ? and d.name = ?"
        };
 
        private String database = null;
@@ -584,11 +598,11 @@ public class RapideMetaUnloader{
                                                        sbTbCnts.append(" NULL");
                                                }
                                                if (!strSplit[0][0].equals(tableName)){
-                                                       pw[1].println(SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
-                                                       pw[2].println("DROP TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ DROP_OPTION[cp.dbType] + SQL_TERMINATOR[cp.dbType]);
-                                                       pw[3].println("TRUNCATE TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                                       pw[1].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
+                                                       pw[2].println("DROP TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[3].println("TRUNCATE TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbTbCnts.append(lineSeparator);
-                                                       sbTbCnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                                                       sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbTbCnts.append(lineSeparator);
                                                        pw[0] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + tableName + ".sql"))));
                                                        strSplit[1] = CmnUtils.split(sbTbCnts.toString(), lineSeparator);
@@ -655,11 +669,11 @@ public class RapideMetaUnloader{
                                } else {
                                        sbTbCnts.append(" NULL");
                                }
-                               pw[1].println(SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
-                               pw[2].println("DROP TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ DROP_OPTION[cp.dbType] + SQL_TERMINATOR[cp.dbType]);
-                               pw[3].println("TRUNCATE TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
+                               pw[2].println("DROP TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[3].println("TRUNCATE TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tableName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                sbTbCnts.append(lineSeparator);
-                               sbTbCnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                               sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                sbTbCnts.append(lineSeparator);
                                pw[0] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + tableName + ".sql"))));
                                strSplit[1] = CmnUtils.split(sbTbCnts.toString(), lineSeparator);
@@ -710,9 +724,9 @@ public class RapideMetaUnloader{
                                                                sbIxCnts.append(", " + DB_SQL_QUOTED_S[cp.dbType]+ colName + DB_SQL_QUOTED_E[cp.dbType]);
                                                                if (constraintType.equals("U"))sbIx2Cnts.append(", " + DB_SQL_QUOTED_S[cp.dbType]+ colName + DB_SQL_QUOTED_E[cp.dbType]);
                                                        }
-                                                       sbIxCnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                                                       sbIxCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbIxCnts.append(lineSeparator);
-                                                       if (constraintType.equals("U"))sbIx2Cnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                                                       if (constraintType.equals("U"))sbIx2Cnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbIx2Cnts.append(lineSeparator);
                                                        sbIx3Cnts.append(lineSeparator);
 
@@ -742,14 +756,14 @@ public class RapideMetaUnloader{
                                                        //Index Changed Process
                                                        if (strSplit[0][3].equals("P")){
                                                                sbIxCnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " PRIMARY KEY(");
-                                                               sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                                               sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                        } else if (strSplit[0][3].equals("U")){
                                                                sbIxCnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " UNIQUE(");
                                                                sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP UNIQUE(");
                                                        } else if (strSplit[0][3].equals("")){
                                                                sbIxCnts.append("CREATE INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " ON " + strSplit[0][0] + "(");
                                                        }
-                                                       sbIx3Cnts.append("DROP INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                                       sbIx3Cnts.append("DROP INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                } else if (strSplit[0][1].equals(indexName)){
                                                        if (colPos.equals("1")){
                                                                sbIxCnts.append(DB_SQL_QUOTED_S[cp.dbType]+ colName + DB_SQL_QUOTED_E[cp.dbType]);
@@ -765,14 +779,14 @@ public class RapideMetaUnloader{
                                        else {
                                                if (strSplit[0][3].equals("P")){
                                                        sbIxCnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " PRIMARY KEY(");
-                                                       sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                                       sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                } else if (strSplit[0][3].equals("U")){
                                                        sbIxCnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " UNIQUE(");
                                                        sbIx2Cnts.append("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ " DROP UNIQUE(");
                                                } else if (strSplit[0][3].equals("")){
                                                        sbIxCnts.append("CREATE INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ " ON " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ "(");
                                                }
-                                               sbIx3Cnts.append("DROP INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                               sbIx3Cnts.append("DROP INDEX " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][1] + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                        }
                                        for(int i=0;i<strSplit[0].length;i++)CmnUtils.debugPrint("'" + strSplit[0][i] + "'");
 
@@ -793,9 +807,9 @@ public class RapideMetaUnloader{
                                        sbIxCnts.append(", " + DB_SQL_QUOTED_S[cp.dbType]+ colName + DB_SQL_QUOTED_E[cp.dbType]);
                                        if (constraintType.equals("U"))sbIx2Cnts.append(", " + DB_SQL_QUOTED_S[cp.dbType]+ colName + DB_SQL_QUOTED_E[cp.dbType]);
                                }
-                               sbIxCnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                               sbIxCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                sbIxCnts.append(lineSeparator);
-                               if (constraintType.equals("U"))sbIx2Cnts.append(")" + SQL_TERMINATOR[cp.dbType]);
+                               if (constraintType.equals("U"))sbIx2Cnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                sbIx2Cnts.append(lineSeparator);
                                sbIx3Cnts.append(lineSeparator);
 
@@ -834,8 +848,8 @@ public class RapideMetaUnloader{
                        while((strLine=br[0].readLine()) != null){
                                strSplit[0] = CmnUtils.split(strLine, cp.delimiter);
                                CmnUtils.debugPrint("'" + strSplit[0][0] + "'");
-                               pw[1].println(SQL_PREFIX[cp.dbType] + "VIEWS/" + strSplit[0][0] + ".sql");
-                               pw[2].println("DROP VIEW " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println(cp.SQL_PREFIX[cp.dbType] + "VIEWS/" + strSplit[0][0] + ".sql");
+                               pw[2].println("DROP VIEW " + DB_SQL_QUOTED_S[cp.dbType]+ strSplit[0][0] + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                if (strSplit[0].length>1)CmnUtils.debugPrint("'" + strSplit[0][1] + "'");
                                pw[0] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[0][0] + ".sql"))));
                                
@@ -875,7 +889,7 @@ public class RapideMetaUnloader{
                                strContents = alData2.get(0).trim();
                                strSplit[1] = CmnUtils.split(strContents, lineSeparator);
                                for(int i=0;i<strSplit[1].length;i++)if(!strSplit[1][i].trim().equals(""))pw[0].println(strSplit[1][i].replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
-                               pw[0].println(SQL_TERMINATOR[cp.dbType]);
+                               pw[0].println(cp.SQL_TERMINATOR[cp.dbType]);
 
                                if (!strSplit[0][1].trim().equals(""))pw[0].println(commentOnTable(cp, strSplit[0][0], strSplit[0][1], TYPE_VIEW));
                                for(int i=0;i<alData.size();i++){
@@ -901,12 +915,14 @@ public class RapideMetaUnloader{
                        while((strLine=br[0].readLine()) != null){
                                strSplit[0] = CmnUtils.split(strLine, cp.delimiter);
                                CmnUtils.debugPrint("'" + strSplit[0][0] + "'");
-                               pw[1].println(SQL_PREFIX[cp.dbType] + "PROCEDURES/" + strSplit[0][0] + ".sql");
-                               pw[2].println("DROP " + strSplit[0][1] + " " + strSplit[0][0] + SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println(cp.SQL_PREFIX[cp.dbType] + "PROCEDURES/" + strSplit[0][0] + ".sql");
+                               pw[2].println("DROP " + strSplit[0][1] + " " + strSplit[0][0] + cp.SQL_TERMINATOR[cp.dbType]);
                                if (strSplit[0].length>1)CmnUtils.debugPrint("'" + strSplit[0][1] + "'");
                                pw[0] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[0][0] + ".sql"))));
-                               pw[0].println("/* " + strSplit[0][0] + " */");
-                               pw[0].print("CREATE OR REPLACE ");
+                               if (cp.dbType == cp.DB_TYPE_ORACLE){
+                                       pw[0].println("/* " + strSplit[0][0] + " */");
+                                       pw[0].print("CREATE OR REPLACE ");
+                               }
                                stmt = dao.prepareSql(sql_proc[cp.dbType]);
                                stmt.setString(1,strSplit[0][1]);
                                stmt.setString(2,strSplit[0][0]);
@@ -914,9 +930,13 @@ public class RapideMetaUnloader{
                                alData = dao.getArrayList();
                                for(int i=0;i<alData.size();i++){
                                        strContents = alData.get(i);
-                                       if(!strContents.equals(""))pw[0].println(strContents.replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
+                                       if(!strContents.equals(""))pw[0].println(strContents.replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
+                               }
+                               
+                               if (cp.dbType == cp.DB_TYPE_SQLSERVER){
+                                       pw[0].println(cp.SQL_TERMINATOR[cp.dbType]);
+                                       //pw[0].println("/");
                                }
-                               //pw[0].println("/");
                                pw[0].close();
                                pw[0] = null;
                        }
@@ -953,8 +973,8 @@ public class RapideMetaUnloader{
                                } else {
                                        pw[1].print(" CYCLE");
                                }
-                               pw[1].println(SQL_TERMINATOR[cp.dbType]);
-                               pw[2].println("DROP SEQUENCE " + DB_SQL_QUOTED_S[cp.dbType]+ seqName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println(cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[2].println("DROP SEQUENCE " + DB_SQL_QUOTED_S[cp.dbType]+ seqName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                for(int i=0;i<strSplit[0].length;i++)CmnUtils.debugPrint("'" + strSplit[0][i] + "'");
                        }
                        for(int i=1;i<3;i++)pw[i].close();
@@ -981,8 +1001,8 @@ public class RapideMetaUnloader{
                                } else {
                                        pw[1].print(DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ "@" + DB_SQL_QUOTED_S[cp.dbType]+ dbLnk + DB_SQL_QUOTED_S[cp.dbType]);
                                }
-                               pw[1].println(SQL_TERMINATOR[cp.dbType]);
-                               pw[2].println("DROP SYNONYM " + DB_SQL_QUOTED_S[cp.dbType]+ synmName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println(cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[2].println("DROP SYNONYM " + DB_SQL_QUOTED_S[cp.dbType]+ synmName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                for(int i=0;i<strSplit[0].length;i++)CmnUtils.debugPrint("'" + strSplit[0][i] + "'");
                        }
                        for(int i=1;i<3;i++)pw[i].close();
@@ -1009,8 +1029,8 @@ public class RapideMetaUnloader{
                                while((strLine=br[0].readLine()) != null){
                                        strSplit[0] = CmnUtils.split(strLine, cp.delimiter);
                                        if(!fkName.equals(strSplit[0][1]) && !fkName.equals("")){
-                                               pw[1].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ " FOREIGN KEY (" + DB_SQL_QUOTED_S[cp.dbType]+ fkCol + DB_SQL_QUOTED_E[cp.dbType]+ ") REFERENCES " + DB_SQL_QUOTED_S[cp.dbType]+ rtbName + DB_SQL_QUOTED_E[cp.dbType]+ " (" + DB_SQL_QUOTED_S[cp.dbType]+ rfkCol + DB_SQL_QUOTED_E[cp.dbType]+ ")" + SQL_TERMINATOR[cp.dbType]);
-                                               pw[2].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                                               pw[1].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ " FOREIGN KEY (" + DB_SQL_QUOTED_S[cp.dbType]+ fkCol + DB_SQL_QUOTED_E[cp.dbType]+ ") REFERENCES " + DB_SQL_QUOTED_S[cp.dbType]+ rtbName + DB_SQL_QUOTED_E[cp.dbType]+ " (" + DB_SQL_QUOTED_S[cp.dbType]+ rfkCol + DB_SQL_QUOTED_E[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
+                                               pw[2].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                for(int i=0;i<strSplit[0].length;i++)CmnUtils.debugPrint("'" + strSplit[0][i] + "'");
                                                tbName = strSplit[0][0];
                                                fkName = strSplit[0][1];
@@ -1039,8 +1059,8 @@ public class RapideMetaUnloader{
                                        }
                                        
                                }
-                               pw[1].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ " FOREIGN KEY (" + DB_SQL_QUOTED_S[cp.dbType]+ fkCol + DB_SQL_QUOTED_E[cp.dbType]+ ") REFERENCES " + DB_SQL_QUOTED_S[cp.dbType]+ rtbName + DB_SQL_QUOTED_E[cp.dbType]+ " (" + DB_SQL_QUOTED_S[cp.dbType]+ rfkCol + DB_SQL_QUOTED_E[cp.dbType]+ ")" + SQL_TERMINATOR[cp.dbType]);
-                               pw[2].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ SQL_TERMINATOR[cp.dbType]);
+                               pw[1].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " ADD CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ " FOREIGN KEY (" + DB_SQL_QUOTED_S[cp.dbType]+ fkCol + DB_SQL_QUOTED_E[cp.dbType]+ ") REFERENCES " + DB_SQL_QUOTED_S[cp.dbType]+ rtbName + DB_SQL_QUOTED_E[cp.dbType]+ " (" + DB_SQL_QUOTED_S[cp.dbType]+ rfkCol + DB_SQL_QUOTED_E[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[2].println("ALTER TABLE " + DB_SQL_QUOTED_S[cp.dbType]+ tbName + DB_SQL_QUOTED_E[cp.dbType]+ " DROP CONSTRAINT " + DB_SQL_QUOTED_S[cp.dbType]+ fkName + DB_SQL_QUOTED_E[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                for(int i=1;i<3;i++)pw[i].close();
                                for(int i=1;i<3;i++)pw[i]=null;
                                br[0].close();
@@ -1092,9 +1112,9 @@ public class RapideMetaUnloader{
                                                pw[1].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[1].print(" TABLESPACE " + DB_SQL_QUOTED_S[cp.dbType]+ tblSpace + DB_SQL_QUOTED_E[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[1].println(" NOLOGGING" + SQL_TERMINATOR[cp.dbType]);
+                                                       pw[1].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[1].println(SQL_TERMINATOR[cp.dbType]);
+                                                       pw[1].println(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[1].println(strLine);
@@ -1128,9 +1148,9 @@ public class RapideMetaUnloader{
                                                pw[2].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[2].print(" TABLESPACE " + DB_SQL_QUOTED_S[cp.dbType]+ tblSpace + DB_SQL_QUOTED_E[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[2].println(" NOLOGGING" + SQL_TERMINATOR[cp.dbType]);
+                                                       pw[2].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[2].println(SQL_TERMINATOR[cp.dbType]);
+                                                       pw[2].println(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[2].println(strLine);
@@ -1164,9 +1184,9 @@ public class RapideMetaUnloader{
                                                pw[3].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[3].print(" TABLESPACE " + DB_SQL_QUOTED_S[cp.dbType]+ tblSpace + DB_SQL_QUOTED_E[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[3].println(" NOLOGGING" + SQL_TERMINATOR[cp.dbType]);
+                                                       pw[3].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[3].println(SQL_TERMINATOR[cp.dbType]);
+                                                       pw[3].println(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[3].println(strLine);
@@ -1206,7 +1226,7 @@ public class RapideMetaUnloader{
                                        br[0] = new BufferedReader(new FileReader(tb));
                                        pw[0] = new PrintWriter(new BufferedWriter(new FileWriter(oTb)));
                                        while((strLine=br[0].readLine()) != null){
-                                               if(strLine.equals(")" + SQL_TERMINATOR[cp.dbType])){
+                                               if(strLine.equals(")" + cp.SQL_TERMINATOR[cp.dbType])){
                                                        rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, tbName);
                                                        if (rowNo != -1){
                                                                rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
@@ -1232,12 +1252,12 @@ public class RapideMetaUnloader{
                                                                pw[0].print(" BUFFER_POOL " + bufPool + ")");
                                                                pw[0].print(" TABLESPACE " + DB_SQL_QUOTED_S[cp.dbType]+ tblSpace + DB_SQL_QUOTED_E[cp.dbType]);
                                                                if(logging.equals("NO")){
-                                                                       pw[0].println(" NOLOGGING" + SQL_TERMINATOR[cp.dbType]);
+                                                                       pw[0].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                                } else {
-                                                                       pw[0].println(SQL_TERMINATOR[cp.dbType]);
+                                                                       pw[0].println(cp.SQL_TERMINATOR[cp.dbType]);
                                                                }
                                                        } else {
-                                                               pw[0].println(")" + SQL_TERMINATOR[cp.dbType]);
+                                                               pw[0].println(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        }
                                                } else {
                                                        pw[0].println(strLine);
@@ -1258,7 +1278,7 @@ public class RapideMetaUnloader{
                        for(int i=0;i<sql[cp.dbType].length;i++){
                                fl= new File(folder + "/" + FILE_NAME[i] + "_" + database + "." + cp.fileExtension);
                                CmnUtils.debugPrint(fl.toString());
-                               //fl.delete();
+                               fl.delete();
                        }
 
                        // disconnect database
@@ -1304,13 +1324,13 @@ public class RapideMetaUnloader{
                if(!_tableCmnt.equals("")){
                        switch (_cp.dbType) {
                          case DB_TYPE_ORACLE:
-                               retVal = "COMMENT ON TABLE " + DB_SQL_QUOTED_S[_cp.dbType]+ _tableName + DB_SQL_QUOTED_E[_cp.dbType]+ " IS '" + _tableCmnt.replaceAll("'","''") + "'" + SQL_TERMINATOR[_cp.dbType];
+                               retVal = "COMMENT ON TABLE " + DB_SQL_QUOTED_S[_cp.dbType]+ _tableName + DB_SQL_QUOTED_E[_cp.dbType]+ " IS '" + _tableCmnt.replaceAll("'","''") + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                            break;
                          case DB_TYPE_SQLSERVER:
                                if(_type == TYPE_TABLE){
-                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _tableCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'table',@level1name=N'" + _tableName + "'" + SQL_TERMINATOR[_cp.dbType];
+                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _tableCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'table',@level1name=N'" + _tableName + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                                } else if(_type == TYPE_VIEW){
-                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _tableCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'view',@level1name=N'" + _tableName + "'" + SQL_TERMINATOR[_cp.dbType];
+                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _tableCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'view',@level1name=N'" + _tableName + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                                }
                                break;
                          default :
@@ -1323,13 +1343,13 @@ public class RapideMetaUnloader{
                if(!_colCmnt.equals("")){
                        switch (_cp.dbType) {
                          case DB_TYPE_ORACLE:
-                               retVal = "COMMENT ON COLUMN " + DB_SQL_QUOTED_S[_cp.dbType]+ _tableName + DB_SQL_QUOTED_E[_cp.dbType]+ "." + DB_SQL_QUOTED_S[_cp.dbType]+ _colName + DB_SQL_QUOTED_E[_cp.dbType]+ " IS '" + _colCmnt.replaceAll("'","''") + "'" + SQL_TERMINATOR[_cp.dbType];
+                               retVal = "COMMENT ON COLUMN " + DB_SQL_QUOTED_S[_cp.dbType]+ _tableName + DB_SQL_QUOTED_E[_cp.dbType]+ "." + DB_SQL_QUOTED_S[_cp.dbType]+ _colName + DB_SQL_QUOTED_E[_cp.dbType]+ " IS '" + _colCmnt.replaceAll("'","''") + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                            break;
                          case DB_TYPE_SQLSERVER:
                                if(_type == TYPE_TABLE){
-                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _colCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'table',@level1name=N'" + _tableName + "',@level2type=N'column',@level2name=N'" + _colName + "'" + SQL_TERMINATOR[_cp.dbType];
+                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _colCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'table',@level1name=N'" + _tableName + "',@level2type=N'column',@level2name=N'" + _colName + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                                } else if(_type == TYPE_VIEW){
-                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _colCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'view',@level1name=N'" + _tableName + "',@level2type=N'column',@level2name=N'" + _colName + "'" + SQL_TERMINATOR[_cp.dbType];
+                                       retVal = "exec sys.sp_addextendedproperty @name=N'MS_Description',@value=N'" + _colCmnt.replaceAll("'","''") + "',@level0type=N'schema',@level0name=N'dbo',@level1type=N'view',@level1name=N'" + _tableName + "',@level2type=N'column',@level2name=N'" + _colName + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
                                }
                            break;
                          default :