OSDN Git Service

20170617
authorkuboryu <kuboryu@yahoo.co.jp>
Fri, 16 Jun 2017 21:42:23 +0000 (06:42 +0900)
committerkuboryu <kuboryu@yahoo.co.jp>
Fri, 16 Jun 2017 21:42:23 +0000 (06:42 +0900)
com/rapide_act/CmnProps.java
com/rapide_act/CmnUtils.java
com/rapide_act/RapideMetaLoader.java
com/rapide_act/RapideMetaUnloader.java

index 2488f21..e6a0b18 100644 (file)
@@ -39,7 +39,7 @@ 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_TERMINATOR = {";" + System.getProperty("line.separator"),  System.getProperty("line.separator") + "GO" + System.getProperty("line.separator"), ";" + System.getProperty("line.separator"), ";", ";", ";"};
        protected static final String [] SQL_PREFIX = {"@", ":r ", "source ", "", "", ""};
        protected static final String [] SQL_COMMENT_MARK = {"--", "--", "--", "--", "--", "--"};
        protected static final int MASK_PTN_ALL = 0;
index 4734afc..3d82ad7 100644 (file)
@@ -598,7 +598,18 @@ public class CmnUtils{
                        return false;
                }
        }
-       
+
+       protected static boolean isCharacterSet(String _str) throws Exception{
+               if(
+                       _str.toUpperCase().equals("CP932") ||
+                       _str.toUpperCase().equals("UTF8") ||
+                       _str.toUpperCase().equals("UJIS")){
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
        protected static String[] getSystemProperty(String _str) throws Exception{
                String [] retValue = null;
                if(System.getProperty(_str)!=null){
index 588690f..30e6d82 100644 (file)
@@ -73,7 +73,7 @@ public class RapideMetaLoader{
                        cp = new CmnProps();
                        cp.setProperty(database);
                        
-                       if (cp.dbType > cp.DB_TYPE_SQLSERVER || cp.dbType <0){
+                       if (cp.dbType > cp.DB_TYPE_MYSQL || 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){
@@ -211,7 +211,7 @@ public class RapideMetaLoader{
                                        }
                                }
                        } else {
-                               sqlLine = CmnUtils.split(strMltLine, ";");
+                               sqlLine = CmnUtils.split(strMltLine, _cp.SQL_TERMINATOR[_cp.dbType]);
                                for(int l = 0;l<sqlLine.length;l++){
                                        if(!sqlLine[l].equals("")){
                                                try {
index 410d938..d09783d 100644 (file)
@@ -263,8 +263,8 @@ public class RapideMetaUnloader{
                                                }
                                                if (!strSplit[LINE][COL01].equals(tableName)){
                                                        pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
-                                                       pw[DROP].println("DROP TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
-                                                       pw[TRUNCATE].println("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[DROP].print("DROP TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[TRUNCATE].print("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbTbCnts.append(cp.lineSeparator);
                                                        sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        sbTbCnts.append(cp.lineSeparator);
@@ -343,8 +343,8 @@ public class RapideMetaUnloader{
                                        sbTbCnts.append(" NULL");
                                }
                                pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
-                               pw[DROP].println("DROP TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
-                               pw[TRUNCATE].println("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[DROP].print("DROP TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.DROP_OPTION[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[TRUNCATE].print("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                sbTbCnts.append(cp.lineSeparator);
                                sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                sbTbCnts.append(cp.lineSeparator);
@@ -549,7 +549,7 @@ public class RapideMetaUnloader{
                                strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
                                CmnUtils.debugPrint("'" + strSplit[LINE][COL01] + "'");
                                pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "VIEWS/" + strSplit[LINE][COL01] + ".sql");
-                               pw[DROP].println("DROP VIEW " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[DROP].print("DROP VIEW " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                if (strSplit[LINE].length>1)CmnUtils.debugPrint("'" + strSplit[LINE][COL02] + "'");
                                pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[LINE][COL01] + ".sql"))));
                                
@@ -593,12 +593,12 @@ public class RapideMetaUnloader{
                                strContents = alData2.get(0).trim();
                                strSplit[1] = CmnUtils.split(strContents, cp.lineSeparator);
                                for(int i=0;i<strSplit[1].length;i++)if(!strSplit[1][i].trim().equals(""))pw[CONTENTS].println(strSplit[1][i].replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
-                               pw[CONTENTS].println(cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
 
-                               if (!strSplit[LINE][COL02].trim().equals(""))pw[CONTENTS].println(commentOnTable(cp, strSplit[LINE][COL01], strSplit[LINE][COL02], cp.TYPE_VIEW));
+                               if (!strSplit[LINE][COL02].trim().equals(""))pw[CONTENTS].print(commentOnTable(cp, strSplit[LINE][COL01], strSplit[LINE][COL02], cp.TYPE_VIEW));
                                for(int i=0;i<alData.size();i++){
                                        if ((i+1) % columnCount == 0){
-                                               if (!alData.get(i).trim().equals(""))pw[CONTENTS].println(commentOnColumn(cp, strSplit[LINE][COL01], alData.get(i-1), alData.get(i), cp.TYPE_VIEW));
+                                               if (!alData.get(i).trim().equals(""))pw[CONTENTS].print(commentOnColumn(cp, strSplit[LINE][COL01], alData.get(i-1), alData.get(i), cp.TYPE_VIEW));
                                        }
                                }
                                pw[CONTENTS].close();
@@ -625,32 +625,67 @@ public class RapideMetaUnloader{
                                strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
                                CmnUtils.debugPrint("'" + strSplit[LINE][COL01] + "'");
                                pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "PROCEDURES/" + strSplit[LINE][COL01] + ".sql");
-                               pw[DROP].println("DROP " + strSplit[LINE][COL02] + " " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[DROP].print("DROP " + strSplit[LINE][COL02] + " " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
                                if (strSplit[LINE].length>1)CmnUtils.debugPrint("'" + strSplit[LINE][COL02] + "'");
                                pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[LINE][COL01] + ".sql"))));
                                if (cp.dbType == cp.DB_TYPE_ORACLE){
                                        pw[CONTENTS].println("/* " + strSplit[LINE][COL01] + " */");
                                        pw[CONTENTS].print("CREATE OR REPLACE ");
-                               } else if (cp.dbType == cp.DB_TYPE_MYSQL){
+                               }
+                               if (cp.dbType == cp.DB_TYPE_MYSQL){
                                        if(strSplit[LINE][COL02].equals("TRIGGER")){
-                                               pw[CONTENTS].println("CREATE " + strSplit[LINE][COL02] + " " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType] + " " + strSplit[LINE][COL03] + " " + strSplit[LINE][COL04] + " ON " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL05] + cp.DB_SQL_QUOTEDE[cp.dbType] + " FOR EACH ROW");
-                                       } else {
-                                               pw[CONTENTS].println("CREATE " + strSplit[LINE][COL02] + " " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
+                                               stmt = dao.prepareSql("show create trigger " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
+                                       } else if (strSplit[LINE][COL02].equals("PROCEDURE")){
+                                               stmt = dao.prepareSql("show create procedure " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
+                                       } else if (strSplit[LINE][COL02].equals("FUNCTION")){
+                                               stmt = dao.prepareSql("show create function " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
                                        }
+                               } else {
+                                       stmt = dao.prepareSql(cp.sql_proc[cp.dbType]);
+                                       stmt.setString(1,strSplit[LINE][COL02]);
+                                       stmt.setString(2,strSplit[LINE][COL01]);
                                }
-                               stmt = dao.prepareSql(cp.sql_proc[cp.dbType]);
-                               stmt.setString(1,strSplit[LINE][COL02]);
-                               stmt.setString(2,strSplit[LINE][COL01]);
                                dao.executeSql();
                                alData = dao.getArrayList();
+                               boolean mysql_s_flag = false;
+                               boolean mysql_e_flag = false;
                                for(int i=0;i<alData.size();i++){
                                        strContents = alData.get(i);
-                                       if(!strContents.equals(""))pw[CONTENTS].println(strContents.replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
+                                       if (cp.dbType == cp.DB_TYPE_MYSQL){
+                                               if(!mysql_s_flag){
+                                                       String [] spcDiv = CmnUtils.split(strContents," ");
+                                                       if(spcDiv.length >0 && spcDiv[0].toUpperCase().equals("CREATE")){
+                                                               mysql_s_flag = true;
+                                                               for(int j=0;j<spcDiv.length;j++){
+                                                                       if(j==0){
+                                                                               pw[CONTENTS].print(spcDiv[j]);
+                                                                       } else if(j!=1) {
+                                                                               pw[CONTENTS].print(" " + spcDiv[j]);
+                                                                       }
+                                                               }
+                                                       }
+                                               } else if(mysql_s_flag && !mysql_e_flag){
+                                                       String [] spcDiv = CmnUtils.split(strContents," ");
+                                                       if(spcDiv.length >0 && CmnUtils.isCharacterSet(spcDiv[0])){
+                                                               mysql_e_flag = true;
+                                                               pw[CONTENTS].println("");
+                                                       } else {
+                                                               for(int j=0;j<spcDiv.length;j++){
+                                                                       if(j==0){
+                                                                               pw[CONTENTS].print(spcDiv[j]);
+                                                                       } else {
+                                                                               pw[CONTENTS].print(" " + spcDiv[j]);
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       } else {
+                                               if(!strContents.equals(""))pw[CONTENTS].println(strContents.replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
+                                       }
                                }
                                
                                if (cp.dbType == cp.DB_TYPE_SQLSERVER){
-                                       pw[CONTENTS].println(cp.SQL_TERMINATOR[cp.dbType]);
-                                       //pw[CONTENTS].println("/");
+                                       pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
                                }
                                pw[CONTENTS].close();
                                pw[CONTENTS] = null;
@@ -707,8 +742,8 @@ public class RapideMetaUnloader{
                                                pw[CREATE].print(" CYCLE");
                                        }
                                }
-                               pw[CREATE].println(cp.SQL_TERMINATOR[cp.dbType]);
-                               pw[DROP].println("DROP SEQUENCE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ seqName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[CREATE].print(cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[DROP].print("DROP SEQUENCE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ seqName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
                        }
                        for(int i=0;i<pw.length;i++){
@@ -743,8 +778,8 @@ public class RapideMetaUnloader{
                                } else if(cp.dbType == cp.DB_TYPE_SQLSERVER){
                                        pw[CREATE].print(tbName);
                                }
-                               pw[CREATE].println(cp.SQL_TERMINATOR[cp.dbType]);
-                               pw[DROP].println("DROP SYNONYM " + cp.DB_SQL_QUOTEDS[cp.dbType]+ synmName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[CREATE].print(cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[DROP].print("DROP SYNONYM " + cp.DB_SQL_QUOTEDS[cp.dbType]+ synmName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
                        }
                        for(int i=0;i<pw.length;i++){
@@ -774,11 +809,11 @@ public class RapideMetaUnloader{
                                while((strLine=br[WK_FILE].readLine()) != null){
                                        strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
                                        if(!fkName.equals(strSplit[LINE][COL02]) && !fkName.equals("")){
-                                               pw[CREATE].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " FOREIGN KEY (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ") REFERENCES " + cp.DB_SQL_QUOTEDS[cp.dbType]+ rtbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ rfkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
+                                               pw[CREATE].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " FOREIGN KEY (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ") REFERENCES " + cp.DB_SQL_QUOTEDS[cp.dbType]+ rtbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ rfkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                if(cp.dbType == cp.DB_TYPE_MYSQL){
-                                                       pw[DROP].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP FOREIGN KEY " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[DROP].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP FOREIGN KEY " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[DROP].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[DROP].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                                for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
                                                tbName = strSplit[LINE][COL01];
@@ -809,11 +844,11 @@ public class RapideMetaUnloader{
                                        }
                                        
                                }
-                               pw[CREATE].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " FOREIGN KEY (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ") REFERENCES " + cp.DB_SQL_QUOTEDS[cp.dbType]+ rtbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ rfkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
+                               pw[CREATE].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " FOREIGN KEY (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ") REFERENCES " + cp.DB_SQL_QUOTEDS[cp.dbType]+ rtbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (" + cp.DB_SQL_QUOTEDS[cp.dbType]+ rfkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ")" + cp.SQL_TERMINATOR[cp.dbType]);
                                if(cp.dbType == cp.DB_TYPE_MYSQL){
-                                       pw[DROP].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP FOREIGN KEY " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                                       pw[DROP].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP FOREIGN KEY " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                } else {
-                                       pw[DROP].println("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
+                                       pw[DROP].print("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ fkName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
                                }
                                        for(int i=0;i<pw.length;i++){
                                        if(pw[i]!=null){
@@ -870,9 +905,9 @@ public class RapideMetaUnloader{
                                                pw[W_CREATE_PKEY].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[W_CREATE_PKEY].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[W_CREATE_PKEY].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_PKEY].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[W_CREATE_PKEY].println(cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_PKEY].print(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[W_CREATE_PKEY].println(strLine);
@@ -906,9 +941,9 @@ public class RapideMetaUnloader{
                                                pw[W_CREATE_UKEY].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[W_CREATE_UKEY].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[W_CREATE_UKEY].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_UKEY].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[W_CREATE_UKEY].println(cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_UKEY].print(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[W_CREATE_UKEY].println(strLine);
@@ -942,9 +977,9 @@ public class RapideMetaUnloader{
                                                pw[W_CREATE_INDEX].print(" BUFFER_POOL " + bufPool + ")");
                                                pw[W_CREATE_INDEX].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
                                                if(logging.equals("NO")){
-                                                       pw[W_CREATE_INDEX].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_INDEX].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                } else {
-                                                       pw[W_CREATE_INDEX].println(cp.SQL_TERMINATOR[cp.dbType]);
+                                                       pw[W_CREATE_INDEX].print(cp.SQL_TERMINATOR[cp.dbType]);
                                                }
                                        } else {
                                                pw[W_CREATE_INDEX].println(strLine);
@@ -992,7 +1027,7 @@ public class RapideMetaUnloader{
                                        br[WK_FILE] = new BufferedReader(new FileReader(tb));
                                        pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(oTb)));
                                        while((strLine=br[WK_FILE].readLine()) != null){
-                                               if(strLine.equals(")" + cp.SQL_TERMINATOR[cp.dbType])){
+                                               if(strLine.equals(");")){
                                                        rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, tbName);
                                                        if (rowNo != -1){
                                                                rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
@@ -1018,12 +1053,12 @@ public class RapideMetaUnloader{
                                                                pw[CONTENTS].print(" BUFFER_POOL " + bufPool + ")");
                                                                pw[CONTENTS].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
                                                                if(logging.equals("NO")){
-                                                                       pw[CONTENTS].println(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
+                                                                       pw[CONTENTS].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
                                                                } else {
-                                                                       pw[CONTENTS].println(cp.SQL_TERMINATOR[cp.dbType]);
+                                                                       pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
                                                                }
                                                        } else {
-                                                               pw[CONTENTS].println(")" + cp.SQL_TERMINATOR[cp.dbType]);
+                                                               pw[CONTENTS].print(")" + cp.SQL_TERMINATOR[cp.dbType]);
                                                        }
                                                } else {
                                                        pw[CONTENTS].println(strLine);