1 package com.rapide_act;
3 import java.io.BufferedInputStream;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
8 import java.io.FileReader;
9 import java.io.FileWriter;
10 import java.io.BufferedWriter;
11 import java.io.BufferedReader;
12 import java.io.PrintWriter;
13 import java.io.PrintWriter;
14 import java.util.Date;
15 import java.util.ArrayList;
16 import java.util.Iterator;
17 import java.util.Properties;
18 import java.util.regex.Pattern;
19 import java.sql.Connection;
20 import java.sql.DriverManager;
21 import java.sql.ResultSet;
22 import java.sql.ResultSetMetaData;
23 import java.sql.SQLException;
24 import java.sql.PreparedStatement;
25 import java.sql.Timestamp;
29 public class RapideMetaUnloader{
31 private static final int CONTENTS = 0;
32 private static final int CREATE = 1;
33 private static final int DROP = 2;
34 private static final int TRUNCATE = 3;
36 private static final int WK_FILE = 0;
37 private static final int R_CREATE_PKEY = 1;
38 private static final int R_CREATE_UKEY = 2;
39 private static final int R_CREATE_INDEX = 3;
40 private static final int W_CREATE_PKEY = 0;
41 private static final int W_CREATE_UKEY = 1;
42 private static final int W_CREATE_INDEX = 2;
43 private static final int W_DROP_PKEY = 3;
44 private static final int W_DROP_UKEY = 4;
45 private static final int W_DROP_INDEX = 5;
47 private static final int LINE = 0;
48 private static final int TBL_CONTENTS = 1;
49 private static final int TBL_COMMENTS = 2;
50 private static final int IDX_CONTENTS_1 = 1;
51 private static final int IDX_CONTENTS_2 = 2;
52 private static final int IDX_CONTENTS_3 = 3;
54 private static final int COL01 = 0;
55 private static final int COL02 = 1;
56 private static final int COL03 = 2;
57 private static final int COL04 = 3;
58 private static final int COL05 = 4;
59 private static final int COL06 = 5;
60 private static final int COL07 = 6;
61 private static final int COL08 = 7;
62 private static final int COL09 = 8;
63 private static final int COL10 = 9;
64 private static final int COL11 = 10;
65 private static final int COL12 = 11;
67 private String database = null;
68 private String phyfileExtension = "phy";
70 public static void main(String args[]){
73 RapideMetaUnloader RapideMetaUnloader = new RapideMetaUnloader(args[0]);
74 RapideMetaUnloader.metaUnload();
76 RapideMetaUnloader RapideMetaUnloader = new RapideMetaUnloader(null);
77 RapideMetaUnloader.metaUnload();
79 } catch (Exception e) {
84 RapideMetaUnloader(String _database) {
90 private void metaUnload(){
91 Connection conn = null;
92 PreparedStatement stmt = null;
93 BufferedReader [] br = new BufferedReader[4];
94 PrintWriter [] pw = new PrintWriter[6];
96 File subFolder = null;
97 String strLine = null;
98 String strLine2 = null;
99 String [][] strSplit = new String[4][];
100 String strContents = null;
101 ArrayList<String> alData = null;
102 ArrayList<String> alData2 = null;
104 String tableName = null;
105 String tableCmnt = null;
106 String colName = null;
107 String colCmnt = null;
108 String colType = null;
109 String colLen = null;
110 String colPrec = null;
111 String colScale = null;
112 String colNoN = null;
113 String colDflt = null;
114 String indexName = null;
115 String indexType = null;
116 String constraintType = null;
117 String colPos = null;
118 String seqName = null;
119 String minVal = null;
120 String maxVal = null;
124 String cacheSz = null;
126 String synmOwner = null;
127 String synmName = null;
128 String tbOwner = null;
129 String tbName = null;
131 String userName = null;
132 String passWord = null;
134 String created = null;
135 String acStat = null;
136 String defTbsp = null;
137 String tmpTbsp = null;
138 String grntee = null;
139 String grntor = null;
140 String grntrl = null;
142 String grntabl = null;
145 String objName = null;
146 String objTyp = null;
147 String pctFree = null;
148 String pctUsed = null;
149 String iniTrns = null;
150 String freeLst = null;
151 String flstGrp = null;
152 String bufPool = null;
153 String tblSpace = null;
154 String logging = null;
155 String segByts = null;
157 String fkName = null;
159 String fkColPos = null;
160 String rtbName = null;
161 String rfkName = null;
162 String rfkCol = null;
163 String rfkColPos = null;
166 CmnAccessObjects dao = null;
170 cp.setProperty(database);
172 if (cp.dbType > cp.DB_TYPE_DB2 || cp.dbType <0){
173 throw new Exception("
\83f
\81[
\83^
\83x
\81[
\83X
\82ª
\91Î
\8fÛ
\8aO
\82Å
\82·
\81B[" + cp.DB_TYPE_NAME[cp.dbType] + "]");
175 if(cp.outFolder != null){
176 folder = new File(cp.outFolder);
178 if(database != null){
179 folder = new File(cp.DEFAULT_OUT_FOLDER + "/" + cp.metaFolder + "_" + database.toUpperCase() + "_" + CmnUtils.getYmdhm());
181 folder = new File(cp.DEFAULT_OUT_FOLDER + "/" + cp.metaFolder + "_" + cp.DB_TYPE_NAME[cp.dbType].toUpperCase() + "_" + CmnUtils.getYmdhm());
186 CmnUtils.infoPrint("-->
\8fo
\97Í
\90æ
\83t
\83H
\83\8b\83_='" + folder + "'");
187 CmnUtils.infoPrint("
\83\81\83^
\83f
\81[
\83^
\83A
\83\93\83\8d\81[
\83h
\82ð
\8aJ
\8en
\82µ
\82Ü
\82µ
\82½
\81B");
190 dao = new CmnAccessObjects(cp);
191 conn = dao.connect();
192 // Def tsv Writing start
193 for(int i=0;i<cp.meta_sql[cp.dbType].length;i++){
194 if(!cp.meta_sql[cp.dbType][i].equals("")){
195 dao.select(cp.meta_sql[cp.dbType][i]);
196 CmnUtils.writeSeparator(folder + "/" + cp.WK_FILE_NAME[i] + "_" + database +"." + cp.fileExtension, dao.getColumnCount(), dao.getArrayList(), cp.delimiter);
198 CmnUtils.emptyFile(folder + "/" + cp.WK_FILE_NAME[i] + "_" + database +"." + cp.fileExtension);
201 // Def tsv Writing end
203 // Table Contents start
204 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_TABLE] + "_" + database + "." + cp.fileExtension));
205 subFolder = new File(folder + "/TABLES");
207 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_TABLE]))));
208 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_TABLE]))));
209 pw[TRUNCATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.TRUNCATE_TABLE]))));
222 StringBuffer sbTbCnts = new StringBuffer();
223 StringBuffer sbTbCmnt = new StringBuffer();
224 while((strLine=br[WK_FILE].readLine()) != null){
225 if(!strLine.equals("")){
226 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
227 if (!tableName.equals("")){
228 sbTbCnts.append(" " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
229 sbTbCnts.append(" " + colType);
230 if(!colCmnt.equals(""))sbTbCmnt.append(commentOnColumn(cp, tableName, colName, colCmnt, cp.TYPE_TABLE));
231 if(!colCmnt.equals(""))sbTbCmnt.append(cp.lineSeparator);
232 if(CmnUtils.isColPrec(colType, colPrec)){
233 sbTbCnts.append("(" + colPrec);
234 if (!CmnUtils.isEmpty(colScale) && !colScale.equals("0"))sbTbCnts.append("," + colScale);
235 sbTbCnts.append(")");
236 } else if (CmnUtils.isColLength(colType)){
237 if(colLen.equals("-1")){
238 sbTbCnts.append("(max)");
240 sbTbCnts.append("(" + CmnUtils.getColLength(colType, colLen) + ")");
243 if (!CmnUtils.isEmpty(colDflt)){
244 if(CmnUtils.split(strLine, cp.SQL_COMMENT_MARK[cp.dbType]).length > 0){
245 String [] colDfltAry = CmnUtils.split(colDflt, cp.SQL_COMMENT_MARK[cp.dbType]);
246 if (cp.dbType == cp.DB_TYPE_MYSQL && !CmnUtils.isReserved(colDfltAry[0].trim())){
247 sbTbCnts.append(" DEFAULT '" + colDfltAry[0].trim() + "'");
249 sbTbCnts.append(" DEFAULT " + colDfltAry[0].trim());
252 if (cp.dbType == cp.DB_TYPE_MYSQL && !CmnUtils.isReserved(colDflt.trim())){
253 sbTbCnts.append(" DEFAULT " + colDflt.trim() + "'");
255 sbTbCnts.append(" DEFAULT " + colDflt.trim());
259 if (!CmnUtils.isEmpty(colNoN)){
260 sbTbCnts.append(" NOT NULL");
262 sbTbCnts.append(" NULL");
264 if (!strSplit[LINE][COL01].equals(tableName)){
265 pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
266 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]);
267 pw[TRUNCATE].print("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
268 sbTbCnts.append(cp.lineSeparator);
269 sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
270 sbTbCnts.append(cp.lineSeparator);
271 pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + tableName + ".sql"))));
272 strSplit[TBL_CONTENTS] = CmnUtils.split(sbTbCnts.toString(), cp.lineSeparator);
273 for(int i=0;i<strSplit[TBL_CONTENTS].length;i++)if(!strSplit[TBL_CONTENTS][i].trim().equals(""))pw[CONTENTS].println(strSplit[TBL_CONTENTS][i]);
274 strSplit[TBL_COMMENTS] = CmnUtils.split(sbTbCmnt.toString(), cp.lineSeparator);
275 for(int i=0;i<strSplit[TBL_COMMENTS].length;i++)if(!strSplit[TBL_COMMENTS][i].trim().equals(""))pw[CONTENTS].println(strSplit[TBL_COMMENTS][i]);
276 pw[CONTENTS].close();
278 CmnUtils.infoPrint(String.format("%1$-42s","[TABLE] " + tableName) + "
\83\81\83^
\83f
\81[
\83^
\82ª
\83A
\83\93\83\8d\81[
\83h
\82³
\82ê
\82Ü
\82µ
\82½
\81B");
279 sbTbCnts = new StringBuffer();
280 sbTbCmnt = new StringBuffer();
281 sbTbCnts.append("CREATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
282 sbTbCnts.append(cp.lineSeparator);
283 sbTbCnts.append("(");
284 sbTbCnts.append(cp.lineSeparator);
285 if(!CmnUtils.isEmpty(strSplit[LINE][COL02]))sbTbCmnt.append(commentOnTable(cp, strSplit[LINE][COL01], strSplit[LINE][COL02], cp.TYPE_TABLE));
286 if(!CmnUtils.isEmpty(strSplit[LINE][COL02]))sbTbCmnt.append(cp.lineSeparator);
288 sbTbCnts.append(",");
289 sbTbCnts.append(cp.lineSeparator);
293 sbTbCnts.append("CREATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
294 sbTbCnts.append(cp.lineSeparator);
295 sbTbCnts.append("(");
296 sbTbCnts.append(cp.lineSeparator);
297 if(!CmnUtils.isEmpty(strSplit[LINE][COL02]))sbTbCmnt.append(commentOnTable(cp, strSplit[LINE][COL01], strSplit[LINE][COL02], cp.TYPE_TABLE));
298 if(!CmnUtils.isEmpty(strSplit[LINE][COL02]))sbTbCmnt.append(cp.lineSeparator);
300 for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
302 tableName = strSplit[LINE][COL01];
303 tableCmnt = strSplit[LINE][COL02];
304 colName = strSplit[LINE][COL03];
305 colCmnt = strSplit[LINE][COL04];
306 colType = strSplit[LINE][COL05];
307 colLen = strSplit[LINE][COL06];
308 colPrec = strSplit[LINE][COL07];
309 colScale = strSplit[LINE][COL08];
310 colNoN = strSplit[LINE][COL09];
311 colDflt = strSplit[LINE][COL10];
315 if (!tableName.equals("")){
316 sbTbCnts.append(" " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
317 sbTbCnts.append(" " + colType);
318 if(!colCmnt.equals("")){
319 sbTbCmnt.append(commentOnColumn(cp, tableName, colName, colCmnt, cp.TYPE_TABLE));
320 sbTbCmnt.append(cp.lineSeparator);
322 if(CmnUtils.isColPrec(colType, colPrec)){
323 sbTbCnts.append("(" + colPrec);
324 if (!CmnUtils.isEmpty(colScale) && !CmnUtils.isEmpty(colScale))sbTbCnts.append("," + colScale);
325 sbTbCnts.append(")");
326 } else if (CmnUtils.isColLength(colType)){
327 if(colLen.equals("-1")){
328 sbTbCnts.append("(max)");
330 sbTbCnts.append("(" + CmnUtils.getColLength(colType, colLen) + ")");
333 if (!CmnUtils.isEmpty(colDflt)){
334 if (cp.dbType == cp.DB_TYPE_MYSQL && !CmnUtils.isReserved(colDflt.trim())){
335 sbTbCnts.append(" DEFAULT '" + colDflt.trim() + "'");
337 sbTbCnts.append(" DEFAULT " + colDflt.trim());
340 if (!CmnUtils.isEmpty(colNoN)){
341 sbTbCnts.append(" NOT NULL");
343 sbTbCnts.append(" NULL");
345 pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "TABLES/" + tableName + ".sql");
346 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]);
347 pw[TRUNCATE].print("TRUNCATE TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tableName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
348 sbTbCnts.append(cp.lineSeparator);
349 sbTbCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
350 sbTbCnts.append(cp.lineSeparator);
351 pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + tableName + ".sql"))));
352 strSplit[TBL_CONTENTS] = CmnUtils.split(sbTbCnts.toString(), cp.lineSeparator);
353 for(int i=0;i<strSplit[TBL_CONTENTS].length;i++)if(!strSplit[TBL_CONTENTS][i].trim().equals(""))pw[CONTENTS].println(strSplit[TBL_CONTENTS][i]);
354 strSplit[TBL_COMMENTS] = CmnUtils.split(sbTbCmnt.toString(), cp.lineSeparator);
355 for(int i=0;i<strSplit[TBL_COMMENTS].length;i++)if(!strSplit[TBL_COMMENTS][i].trim().equals(""))pw[CONTENTS].println(strSplit[TBL_COMMENTS][i]);
356 pw[CONTENTS].close();
358 CmnUtils.infoPrint(String.format("%1$-42s","[TABLE] " + tableName) + "
\83\81\83^
\83f
\81[
\83^
\82ª
\83A
\83\93\83\8d\81[
\83h
\82³
\82ê
\82Ü
\82µ
\82½
\81B");
360 for(int i=0;i<pw.length;i++){
368 // Table Contents end
370 // Index Contents start
371 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_INDEX] + "_" + database + "." + cp.fileExtension));
372 pw[W_CREATE_PKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY]))));
373 pw[W_CREATE_UKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY]))));
374 pw[W_CREATE_INDEX] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX]))));
375 pw[W_DROP_PKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_PKEY]))));
376 pw[W_DROP_UKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_UKEY]))));
377 pw[W_DROP_INDEX] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_INDEX]))));
386 StringBuffer sbIxCnts = new StringBuffer();
387 StringBuffer sbIx2Cnts = new StringBuffer();
388 StringBuffer sbIx3Cnts = new StringBuffer();
391 while((strLine=br[WK_FILE].readLine()) != null){
392 if(!strLine.equals("")){
393 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
394 //Not 1st Line Process
395 if (!indexName.equals("")){
396 if (!strSplit[LINE][COL02].equals(indexName) || !strSplit[LINE][COL01].equals(tableName)){
398 if (colPos.equals("1")){
399 sbIxCnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
400 if (constraintType.equals("U"))sbIx2Cnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
402 sbIxCnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
403 if (constraintType.equals("U"))sbIx2Cnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
405 sbIxCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
406 sbIxCnts.append(cp.lineSeparator);
407 if (constraintType.equals("U"))sbIx2Cnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
408 sbIx2Cnts.append(cp.lineSeparator);
409 sbIx3Cnts.append(cp.lineSeparator);
412 if (constraintType.equals("P")){
413 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
414 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_PKEY].println(strSplit[IDX_CONTENTS_1][i]);
415 strSplit[IDX_CONTENTS_2] = CmnUtils.split(sbIx2Cnts.toString(), cp.lineSeparator);
416 for(int i=0;i<strSplit[IDX_CONTENTS_2].length;i++)if(!strSplit[IDX_CONTENTS_2][i].trim().equals(""))pw[W_DROP_PKEY].println(strSplit[IDX_CONTENTS_2][i]);
417 } else if (constraintType.equals("U")){
418 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
419 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_UKEY].println(strSplit[IDX_CONTENTS_1][i]);
420 strSplit[IDX_CONTENTS_2] = CmnUtils.split(sbIx2Cnts.toString(), cp.lineSeparator);
421 for(int i=0;i<strSplit[IDX_CONTENTS_2].length;i++)if(!strSplit[IDX_CONTENTS_2][i].trim().equals(""))pw[W_DROP_UKEY].println(strSplit[IDX_CONTENTS_2][i]);
423 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
424 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_INDEX].println(strSplit[IDX_CONTENTS_1][i]);
426 strSplit[IDX_CONTENTS_3] = CmnUtils.split(sbIx3Cnts.toString(), cp.lineSeparator);
427 for(int i=0;i<strSplit[IDX_CONTENTS_3].length;i++)if(!strSplit[IDX_CONTENTS_3][i].trim().equals(""))pw[W_DROP_INDEX].println(strSplit[IDX_CONTENTS_3][i]);
430 sbIxCnts = new StringBuffer();
431 sbIx2Cnts = new StringBuffer();
432 sbIx3Cnts = new StringBuffer();
434 //Index Changed Process
435 if (strSplit[LINE][COL04].equals("P")){
436 if (cp.dbType == cp.DB_TYPE_MYSQL){
437 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT PRIMARY KEY(");
438 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP PRIMARY KEY" + cp.SQL_TERMINATOR[cp.dbType]);
440 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " PRIMARY KEY(");
441 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
443 } else if (strSplit[LINE][COL04].equals("U")){
444 if (cp.dbType == cp.DB_TYPE_DB2){
445 sbIxCnts.append("CREATE UNIQUE INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType] + " ON " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (");
446 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP UNIQUE(");
448 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " UNIQUE(");
449 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP UNIQUE(");
452 if (cp.dbType == cp.DB_TYPE_MYSQL && !strSplit[LINE][COL03].equals("") && !strSplit[LINE][COL03].equals("BTREE")){
453 sbIxCnts.append("CREATE " + strSplit[LINE][COL03] + " INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ON " + strSplit[LINE][COL01] + "(");
455 sbIxCnts.append("CREATE INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ON " + strSplit[LINE][COL01] + "(");
458 sbIx3Cnts.append("DROP INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
459 } else if (strSplit[LINE][COL02].equals(indexName) && strSplit[LINE][COL01].equals(tableName)){
460 if (colPos.equals("1")){
461 sbIxCnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
462 if (constraintType.equals("U"))sbIx2Cnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
464 sbIxCnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
465 if (constraintType.equals("U"))sbIx2Cnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
472 if (strSplit[LINE][COL04].equals("P")){
473 if (cp.dbType == cp.DB_TYPE_MYSQL){
474 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT PRIMARY KEY(");
475 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP PRIMARY KEY" + cp.SQL_TERMINATOR[cp.dbType]);
477 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " PRIMARY KEY(");
478 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
480 } else if (strSplit[LINE][COL04].equals("U")){
481 if (cp.dbType == cp.DB_TYPE_DB2){
482 sbIxCnts.append("CREATE UNIQUE INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType] + " ON " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " (");
484 sbIxCnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ADD CONSTRAINT " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " UNIQUE(");
486 sbIx2Cnts.append("ALTER TABLE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " DROP UNIQUE(");
488 if (cp.dbType == cp.DB_TYPE_MYSQL && !strSplit[LINE][COL03].equals("") && !strSplit[LINE][COL03].equals("BTREE")){
489 sbIxCnts.append("CREATE " + strSplit[LINE][COL03] + " INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ON " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ "(");
491 sbIxCnts.append("CREATE INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ " ON " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]+ "(");
494 sbIx3Cnts.append("DROP INDEX " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL02] + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
496 for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
498 tableName = strSplit[LINE][COL01];
499 indexName = strSplit[LINE][COL02];
500 indexType = strSplit[LINE][COL03];
501 constraintType = strSplit[LINE][COL04];
502 colName = strSplit[LINE][COL05];
503 colPos = strSplit[LINE][COL06];
506 if (!indexName.equals("")){
508 if (colPos.equals("1")){
509 sbIxCnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
510 if (constraintType.equals("U"))sbIx2Cnts.append(cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
512 sbIxCnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
513 if (constraintType.equals("U"))sbIx2Cnts.append(", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ colName + cp.DB_SQL_QUOTEDE[cp.dbType]);
515 sbIxCnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
516 sbIxCnts.append(cp.lineSeparator);
517 if (constraintType.equals("U"))sbIx2Cnts.append(")" + cp.SQL_TERMINATOR[cp.dbType]);
518 sbIx2Cnts.append(cp.lineSeparator);
519 sbIx3Cnts.append(cp.lineSeparator);
522 if (constraintType.equals("P")){
523 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
524 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_PKEY].println(strSplit[IDX_CONTENTS_1][i]);
525 strSplit[IDX_CONTENTS_2] = CmnUtils.split(sbIx2Cnts.toString(), cp.lineSeparator);
526 for(int i=0;i<strSplit[IDX_CONTENTS_2].length;i++)if(!strSplit[IDX_CONTENTS_2][i].trim().equals(""))pw[W_DROP_PKEY].println(strSplit[IDX_CONTENTS_2][i]);
527 } else if (constraintType.equals("U")){
528 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
529 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_UKEY].println(strSplit[IDX_CONTENTS_1][i]);
530 strSplit[IDX_CONTENTS_2] = CmnUtils.split(sbIx2Cnts.toString(), cp.lineSeparator);
531 for(int i=0;i<strSplit[IDX_CONTENTS_2].length;i++)if(!strSplit[IDX_CONTENTS_2][i].trim().equals(""))pw[W_DROP_UKEY].println(strSplit[IDX_CONTENTS_2][i]);
533 strSplit[IDX_CONTENTS_1] = CmnUtils.split(sbIxCnts.toString(), cp.lineSeparator);
534 for(int i=0;i<strSplit[IDX_CONTENTS_1].length;i++)if(!strSplit[IDX_CONTENTS_1][i].trim().equals(""))pw[W_CREATE_INDEX].println(strSplit[IDX_CONTENTS_1][i]);
536 strSplit[IDX_CONTENTS_3] = CmnUtils.split(sbIx3Cnts.toString(), cp.lineSeparator);
537 for(int i=0;i<strSplit[IDX_CONTENTS_3].length;i++)if(!strSplit[IDX_CONTENTS_3][i].trim().equals(""))pw[W_DROP_INDEX].println(strSplit[IDX_CONTENTS_3][i]);
541 for(int i=0;i<pw.length;i++){
549 // Index Contents end
551 // View Contents start
552 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_VIEW] + "_" + database + "." + cp.fileExtension));
553 subFolder = new File(folder + "/VIEWS");
555 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_VIEW]))));
556 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_VIEW]))));
557 while((strLine=br[WK_FILE].readLine()) != null){
558 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
559 CmnUtils.debugPrint("'" + strSplit[LINE][COL01] + "'");
560 pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "VIEWS/" + strSplit[LINE][COL01] + ".sql");
561 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]);
562 if (strSplit[LINE].length>1)CmnUtils.debugPrint("'" + strSplit[LINE][COL02] + "'");
563 pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[LINE][COL01] + ".sql"))));
565 stmt = dao.prepareSql(cp.sql_view_column_and_comment[cp.dbType]);
566 stmt.setString(1,strSplit[LINE][COL01]);
568 alData = dao.getArrayList();
569 columnCount = dao.getColumnCount();
570 if (cp.dbType == cp.DB_TYPE_ORACLE || cp.dbType == cp.DB_TYPE_MYSQL){
571 pw[CONTENTS].println("/* " + strSplit[LINE][COL01] + " */");
572 if (cp.dbType == cp.DB_TYPE_ORACLE){
573 pw[CONTENTS].println("CREATE OR REPLACE VIEW " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
575 pw[CONTENTS].println("CREATE VIEW " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
577 pw[CONTENTS].println("(");
578 for(int i=0;i<alData.size();i++){
579 if ((i+1) % columnCount == 1){
581 if (!alData.get(i+1).trim().equals("")){
582 pw[CONTENTS].println(" " + cp.DB_SQL_QUOTEDS[cp.dbType]+ alData.get(i) + cp.DB_SQL_QUOTEDE[cp.dbType]+ " -- " + alData.get(i+1));
584 pw[CONTENTS].println(" " + cp.DB_SQL_QUOTEDS[cp.dbType]+ alData.get(i) + cp.DB_SQL_QUOTEDE[cp.dbType]);
587 if (!alData.get(i+1).trim().equals("")){
588 pw[CONTENTS].println(" ," + cp.DB_SQL_QUOTEDS[cp.dbType]+ alData.get(i) + cp.DB_SQL_QUOTEDE[cp.dbType]+ " -- " + alData.get(i+1));
590 pw[CONTENTS].println(" ," + cp.DB_SQL_QUOTEDS[cp.dbType]+ alData.get(i) + cp.DB_SQL_QUOTEDE[cp.dbType]);
595 pw[CONTENTS].println(")");
596 pw[CONTENTS].println("AS");
598 stmt = dao.prepareSql(cp.sql_view_text[cp.dbType]);
599 stmt.setString(1,strSplit[LINE][COL01]);
601 alData2 = dao.getArrayList();
602 strContents = alData2.get(0).trim();
603 strSplit[1] = CmnUtils.split(strContents, cp.lineSeparator);
604 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() + "."),""));
605 pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
607 if (!strSplit[LINE][COL02].trim().equals(""))pw[CONTENTS].print(commentOnTable(cp, strSplit[LINE][COL01], strSplit[LINE][COL02], cp.TYPE_VIEW));
608 for(int i=0;i<alData.size();i++){
609 if ((i+1) % columnCount == 0){
610 if (!alData.get(i).trim().equals(""))pw[CONTENTS].print(commentOnColumn(cp, strSplit[LINE][COL01], alData.get(i-1), alData.get(i), cp.TYPE_VIEW));
613 pw[CONTENTS].close();
615 CmnUtils.infoPrint(String.format("%1$-42s", "[VIEW] " + strSplit[LINE][COL01]) + "
\83\81\83^
\83f
\81[
\83^
\82ª
\83A
\83\93\83\8d\81[
\83h
\82³
\82ê
\82Ü
\82µ
\82½
\81B");
617 for(int i=0;i<pw.length;i++){
627 // Procedure Contents start
628 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_PROCEDURE] + "_" + database + "." + cp.fileExtension));
629 subFolder = new File(folder + "/PROCEDURES");
631 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PROCEDURE]))));
632 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_PROCEDURE]))));
633 while((strLine=br[WK_FILE].readLine()) != null){
634 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
635 CmnUtils.debugPrint("'" + strSplit[LINE][COL01] + "'");
636 pw[CREATE].println(cp.SQL_PREFIX[cp.dbType] + "PROCEDURES/" + strSplit[LINE][COL01] + ".sql");
637 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]);
638 if (strSplit[LINE].length>1)CmnUtils.debugPrint("'" + strSplit[LINE][COL02] + "'");
639 pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(new File(subFolder + "/" + strSplit[LINE][COL01] + ".sql"))));
640 if (cp.dbType == cp.DB_TYPE_ORACLE){
641 pw[CONTENTS].println("/* " + strSplit[LINE][COL01] + " */");
642 pw[CONTENTS].print("CREATE OR REPLACE ");
644 if (cp.dbType == cp.DB_TYPE_MYSQL){
645 if(strSplit[LINE][COL02].equals("TRIGGER")){
646 stmt = dao.prepareSql("show create trigger " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
647 } else if (strSplit[LINE][COL02].equals("PROCEDURE")){
648 stmt = dao.prepareSql("show create procedure " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
649 } else if (strSplit[LINE][COL02].equals("FUNCTION")){
650 stmt = dao.prepareSql("show create function " + cp.DB_SQL_QUOTEDS[cp.dbType] + strSplit[LINE][COL01] + cp.DB_SQL_QUOTEDE[cp.dbType]);
653 stmt = dao.prepareSql(cp.sql_proc[cp.dbType]);
654 stmt.setString(1,strSplit[LINE][COL02]);
655 stmt.setString(2,strSplit[LINE][COL01]);
658 alData = dao.getArrayList();
659 boolean mysql_s_flag = false;
660 boolean mysql_e_flag = false;
661 for(int i=0;i<alData.size();i++){
662 strContents = alData.get(i);
663 if (cp.dbType == cp.DB_TYPE_MYSQL){
665 String [] spcDiv = CmnUtils.split(strContents," ");
666 if(spcDiv.length >0 && spcDiv[0].toUpperCase().equals("CREATE")){
668 for(int j=0;j<spcDiv.length;j++){
670 pw[CONTENTS].print(spcDiv[j]);
672 pw[CONTENTS].print(" " + spcDiv[j]);
676 } else if(mysql_s_flag && !mysql_e_flag){
677 String [] spcDiv = CmnUtils.split(strContents," ");
678 if(spcDiv.length >0 && CmnUtils.isCharacterSet(spcDiv[0])){
680 pw[CONTENTS].println("");
682 for(int j=0;j<spcDiv.length;j++){
684 pw[CONTENTS].print(spcDiv[j]);
686 pw[CONTENTS].print(" " + spcDiv[j]);
692 if(!strContents.equals(""))pw[CONTENTS].println(strContents.replaceAll("\"\"","\"").replaceAll(Pattern.quote(cp.user.toUpperCase() + "."),"").replaceAll(Pattern.quote(cp.user.toLowerCase() + "."),""));
696 if (cp.dbType == cp.DB_TYPE_SQLSERVER){
697 pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
699 pw[CONTENTS].close();
701 CmnUtils.infoPrint(String.format("%1$-42s","[PROCEDURE] " + strSplit[LINE][COL01]) + "
\83\81\83^
\83f
\81[
\83^
\82ª
\83A
\83\93\83\8d\81[
\83h
\82³
\82ê
\82Ü
\82µ
\82½
\81B");
703 for(int i=0;i<pw.length;i++){
711 // Procedure Contents end
713 // Sequence Contents start
714 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_SEQ] + "_" + database + "." + cp.fileExtension));
715 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_SEQUENCE]))));
716 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SEQUENCE]))));
718 while((strLine=br[WK_FILE].readLine()) != null){
719 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
720 seqName = strSplit[LINE][COL01];
721 minVal = strSplit[LINE][COL02];
722 maxVal = strSplit[LINE][COL03];
723 incSz = strSplit[LINE][COL04];
724 cycFg = strSplit[LINE][COL05];
725 odFg = strSplit[LINE][COL06];
726 cacheSz = strSplit[LINE][COL07];
727 if(cacheSz.equals("0"))cacheSz="10";
728 lstNo = strSplit[LINE][COL08];
729 if (cp.dbType == cp.DB_TYPE_DB2){
730 pw[CREATE].print("CREATE SEQUENCE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ seqName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " AS BIGINT MINVALUE " + minVal + " MAXVALUE " + maxVal + " INCREMENT BY " + incSz + " START WITH " + lstNo);
732 pw[CREATE].print("CREATE SEQUENCE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ seqName + cp.DB_SQL_QUOTEDE[cp.dbType]+ " MINVALUE " + minVal + " MAXVALUE " + maxVal + " INCREMENT BY " + incSz + " START WITH " + lstNo);
734 if (cp.dbType == cp.DB_TYPE_ORACLE){
735 pw[CREATE].print(" CACHE " + cacheSz);
736 if (odFg.equals("N")){
737 pw[CREATE].print(" NOORDER");
739 pw[CREATE].print(" ORDER");
741 if (cycFg.equals("N")){
742 pw[CREATE].print(" NOCYCLE");
744 pw[CREATE].print(" CYCLE");
746 } else if (cp.dbType == cp.DB_TYPE_SQLSERVER){
747 if (cacheSz.equals("")){
748 pw[CREATE].print(" NO CACHE");
750 pw[CREATE].print(" CACHE " + cacheSz);
752 if (cycFg.equals("N")){
753 pw[CREATE].print(" NO CYCLE");
755 pw[CREATE].print(" CYCLE");
757 } else if (cp.dbType == cp.DB_TYPE_DB2){
758 if (cacheSz.equals("")){
759 pw[CREATE].print(" NO CACHE");
761 pw[CREATE].print(" CACHE " + cacheSz);
763 if (cycFg.equals("N")){
764 pw[CREATE].print(" NO CYCLE");
766 pw[CREATE].print(" CYCLE");
768 if (odFg.equals("N")){
769 pw[CREATE].print(" NO ORDER");
771 pw[CREATE].print(" ORDER");
774 pw[CREATE].print(cp.SQL_TERMINATOR[cp.dbType]);
775 pw[DROP].print("DROP SEQUENCE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ seqName + cp.DB_SQL_QUOTEDE[cp.dbType]+ cp.SQL_TERMINATOR[cp.dbType]);
776 for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
778 for(int i=0;i<pw.length;i++){
786 // Sequence Contents end
788 // Synonym Contents start
789 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_SYNONYM] + "_" + database + "." + cp.fileExtension));
790 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_SYNONYM]))));
791 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SYNONYM]))));
793 while((strLine=br[WK_FILE].readLine()) != null){
794 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
795 synmName = strSplit[LINE][COL01];
796 tbOwner = strSplit[LINE][COL02];
797 tbName = strSplit[LINE][COL03];
798 dbLnk = strSplit[LINE][COL04];
800 pw[CREATE].print("CREATE SYNONYM " + cp.DB_SQL_QUOTEDS[cp.dbType] + synmName + cp.DB_SQL_QUOTEDE[cp.dbType] + " FOR ");
801 if(cp.dbType == cp.DB_TYPE_ORACLE){
802 if(!dbLnk.equals("")){
803 pw[CREATE].print(cp.DB_SQL_QUOTEDS[cp.dbType] + tbName + cp.DB_SQL_QUOTEDE[cp.dbType] + "@" + cp.DB_SQL_QUOTEDS[cp.dbType]+ dbLnk + cp.DB_SQL_QUOTEDS[cp.dbType]);
805 pw[CREATE].print(cp.DB_SQL_QUOTEDS[cp.dbType] + tbOwner + cp.DB_SQL_QUOTEDE[cp.dbType] + "." + cp.DB_SQL_QUOTEDS[cp.dbType]+ tbName + cp.DB_SQL_QUOTEDE[cp.dbType]);
808 pw[CREATE].print(cp.DB_SQL_QUOTEDS[cp.dbType] + tbName + cp.DB_SQL_QUOTEDE[cp.dbType]);
810 pw[CREATE].print(cp.SQL_TERMINATOR[cp.dbType]);
811 pw[DROP].print("DROP SYNONYM " + cp.DB_SQL_QUOTEDS[cp.dbType] + synmName + cp.DB_SQL_QUOTEDE[cp.dbType] + cp.SQL_TERMINATOR[cp.dbType]);
812 for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
814 for(int i=0;i<pw.length;i++){
822 // Synonym Contents end
825 File tsvFile = new File(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_FK] + "_" + database + "." + cp.fileExtension);
826 if (tsvFile.length() > 0) {
827 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_FK] + "_" + database + "." + cp.fileExtension));
828 pw[CREATE] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_FK]))));
829 pw[DROP] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_FK]))));
838 while((strLine=br[WK_FILE].readLine()) != null){
839 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
840 if(!fkName.equals(strSplit[LINE][COL02]) && !fkName.equals("")){
841 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]);
842 if(cp.dbType == cp.DB_TYPE_MYSQL){
843 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]);
845 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]);
847 for(int i=0;i<strSplit[LINE].length;i++)CmnUtils.debugPrint("'" + strSplit[LINE][i] + "'");
848 tbName = strSplit[LINE][COL01];
849 fkName = strSplit[LINE][COL02];
850 fkCol = strSplit[LINE][COL03];
851 fkColPos = strSplit[LINE][COL04];
852 rtbName = strSplit[LINE][COL05];
853 rfkCol = strSplit[LINE][COL06];
854 rfkColPos = strSplit[LINE][COL07];
856 if(fkName.equals("")){
857 tbName = strSplit[LINE][COL01];
858 fkName = strSplit[LINE][COL02];
859 fkCol = strSplit[LINE][COL03];
860 fkColPos = strSplit[LINE][COL04];
861 rtbName = strSplit[LINE][COL05];
862 rfkCol = strSplit[LINE][COL06];
863 rfkColPos = strSplit[LINE][COL07];
866 (cp.dbType == cp.DB_TYPE_ORACLE && strSplit[LINE][COL04].equals(strSplit[LINE][COL07])) ||
867 cp.dbType != cp.DB_TYPE_ORACLE
869 fkCol = fkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL03];
870 rfkCol = rfkCol + cp.DB_SQL_QUOTEDE[cp.dbType]+ ", " + cp.DB_SQL_QUOTEDS[cp.dbType]+ strSplit[LINE][COL06];
876 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]);
877 if(cp.dbType == cp.DB_TYPE_MYSQL){
878 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]);
880 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]);
882 for(int i=0;i<pw.length;i++){
893 // Rhysical Contents start
894 if(cp.isPhysical && cp.dbType == cp.DB_TYPE_ORACLE){
895 // physical index setting
896 br[WK_FILE] = new BufferedReader(new FileReader(folder + "/" + cp.WK_FILE_NAME[cp.TYPE_OBJ] + "_" + database + "." + cp.fileExtension));
897 br[R_CREATE_PKEY] = new BufferedReader(new FileReader(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY]));
898 br[R_CREATE_UKEY] = new BufferedReader(new FileReader(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY]));
899 br[R_CREATE_INDEX] = new BufferedReader(new FileReader(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX]));
900 pw[W_CREATE_PKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY] + "." + phyfileExtension))));
901 pw[W_CREATE_UKEY] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY] + "." + phyfileExtension))));
902 pw[W_CREATE_INDEX] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX] + "." + phyfileExtension))));
903 alData = new ArrayList<String>();
906 while((strLine=br[WK_FILE].readLine()) != null){
907 strSplit[LINE] = CmnUtils.split(strLine, cp.delimiter);
908 for(int i=0;i<strSplit[LINE].length;i++)alData.add(strSplit[LINE][i]);
910 while((strLine=br[R_CREATE_PKEY].readLine()) != null){
911 strSplit[LINE] = CmnUtils.splitSpace(strLine);
912 rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[LINE][COL06].replaceAll("\"",""));
914 rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
915 CmnUtils.debugPrint(strSplit[LINE][COL06] + ":" + rowNo);
916 for(int i=0;i<rowData.length;i++)CmnUtils.debugPrint(rowData[i]);
917 tbName = rowData[COL01];
918 objName = rowData[COL02];
919 objTyp = rowData[COL03];
920 pctFree = rowData[COL04];
921 pctUsed = rowData[COL05];
922 iniTrns = rowData[COL06];
923 freeLst = rowData[COL07];
924 flstGrp = rowData[COL08];
925 bufPool = rowData[COL09];
926 tblSpace = rowData[COL10];
927 logging = rowData[COL11];
928 segByts = rowData[COL12];
929 pw[W_CREATE_PKEY].print(strLine.replace(';',' '));
930 pw[W_CREATE_PKEY].print("USING INDEX PCTFREE " + pctFree);
931 pw[W_CREATE_PKEY].print(" INITRANS " + iniTrns + " STORAGE(");
932 if(!freeLst.equals(""))pw[W_CREATE_PKEY].print(" FREELISTS " + freeLst);
933 if(!flstGrp.equals(""))pw[W_CREATE_PKEY].print(" FREELIST GROUPS " + flstGrp);
934 pw[W_CREATE_PKEY].print(" BUFFER_POOL " + bufPool + ")");
935 pw[W_CREATE_PKEY].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
936 if(logging.equals("NO")){
937 pw[W_CREATE_PKEY].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
939 pw[W_CREATE_PKEY].print(cp.SQL_TERMINATOR[cp.dbType]);
942 pw[W_CREATE_PKEY].println(strLine);
943 CmnUtils.errorPrint(strSplit[LINE][COL06] + ",UNUSABLE INDEX");
946 while((strLine=br[R_CREATE_UKEY].readLine()) != null){
947 strSplit[LINE] = CmnUtils.splitSpace(strLine);
948 rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[LINE][COL06].replaceAll("\"",""));
950 rowData = rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
951 CmnUtils.debugPrint(strSplit[LINE][COL06] + ":" + rowNo);
952 for(int i=0;i<rowData.length;i++)CmnUtils.debugPrint(rowData[i]);
953 tbName = rowData[COL01];
954 objName = rowData[COL02];
955 objTyp = rowData[COL03];
956 pctFree = rowData[COL04];
957 pctUsed = rowData[COL05];
958 iniTrns = rowData[COL06];
959 freeLst = rowData[COL07];
960 flstGrp = rowData[COL08];
961 bufPool = rowData[COL09];
962 tblSpace = rowData[COL10];
963 logging = rowData[COL11];
964 segByts = rowData[COL12];
965 pw[W_CREATE_UKEY].print(strLine.replace(';',' '));
966 pw[W_CREATE_UKEY].print("USING INDEX PCTFREE " + pctFree);
967 pw[W_CREATE_UKEY].print(" INITRANS " + iniTrns + " STORAGE(");
968 if(!freeLst.equals(""))pw[W_CREATE_UKEY].print(" FREELISTS " + freeLst);
969 if(!flstGrp.equals(""))pw[W_CREATE_UKEY].print(" FREELIST GROUPS " + flstGrp);
970 pw[W_CREATE_UKEY].print(" BUFFER_POOL " + bufPool + ")");
971 pw[W_CREATE_UKEY].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
972 if(logging.equals("NO")){
973 pw[W_CREATE_UKEY].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
975 pw[W_CREATE_UKEY].print(cp.SQL_TERMINATOR[cp.dbType]);
978 pw[W_CREATE_UKEY].println(strLine);
979 CmnUtils.errorPrint(strSplit[LINE][COL06] + ",UNUSABLE INDEX");
982 while((strLine=br[R_CREATE_INDEX].readLine()) != null){
983 strSplit[LINE] = CmnUtils.splitSpace(strLine);
984 rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[LINE][COL03].replaceAll("\"",""));
985 CmnUtils.debugPrint("rowNo=" + rowNo);
987 rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
988 for(int i=0;i<rowData.length;i++)CmnUtils.debugPrint(rowData[i]);
989 tbName = rowData[COL01];
990 objName = rowData[COL02];
991 objTyp = rowData[COL03];
992 pctFree = rowData[COL04];
993 pctUsed = rowData[COL05];
994 iniTrns = rowData[COL06];
995 freeLst = rowData[COL07];
996 flstGrp = rowData[COL08];
997 bufPool = rowData[COL09];
998 tblSpace = rowData[COL10];
999 logging = rowData[COL11];
1000 segByts = rowData[COL12];
1001 pw[W_CREATE_INDEX].print(strLine.replace(';',' '));
1002 pw[W_CREATE_INDEX].print("PCTFREE " + pctFree);
1003 pw[W_CREATE_INDEX].print(" INITRANS " + iniTrns + " STORAGE(");
1004 if(!freeLst.equals(""))pw[W_CREATE_INDEX].print(" FREELISTS " + freeLst);
1005 if(!flstGrp.equals(""))pw[W_CREATE_INDEX].print(" FREELIST GROUPS " + flstGrp);
1006 pw[W_CREATE_INDEX].print(" BUFFER_POOL " + bufPool + ")");
1007 pw[W_CREATE_INDEX].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
1008 if(logging.equals("NO")){
1009 pw[W_CREATE_INDEX].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
1011 pw[W_CREATE_INDEX].print(cp.SQL_TERMINATOR[cp.dbType]);
1014 pw[W_CREATE_INDEX].println(strLine);
1015 CmnUtils.errorPrint(strSplit[LINE][COL03] + ",UNUSABLE INDEX");
1018 for(int i=0;i<pw.length;i++){
1024 for(int i=0;i<br.length;i++){
1031 File [] fmFl = new File[3];
1032 File [] toFl = new File[3];
1034 fmFl[W_CREATE_PKEY] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY] + "." + phyfileExtension);
1035 fmFl[W_CREATE_UKEY] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY] + "." + phyfileExtension);
1036 fmFl[W_CREATE_INDEX] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX] + "." + phyfileExtension);
1037 toFl[W_CREATE_PKEY] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY]);
1038 toFl[W_CREATE_UKEY] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY]);
1039 toFl[W_CREATE_INDEX] = new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX]);
1040 for(int i=0;i<toFl.length;i++){
1041 CmnUtils.debugPrint(fmFl[i].toString() + ">" + toFl[i].toString());
1043 fmFl[i].renameTo(toFl[i]);
1046 // physical table setting
1047 File tbDir = new File(folder + "/TABLES");
1048 File [] tbFiles = tbDir.listFiles();
1051 for(int i=0;i<tbFiles.length;i++){
1053 tbName = tb.getName().replaceAll(".sql","");
1054 oTb = new File(tb + "." + phyfileExtension);
1055 CmnUtils.debugPrint(tbName);
1056 br[WK_FILE] = new BufferedReader(new FileReader(tb));
1057 pw[CONTENTS] = new PrintWriter(new BufferedWriter(new FileWriter(oTb)));
1058 while((strLine=br[WK_FILE].readLine()) != null){
1059 if(strLine.equals(");")){
1060 rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, tbName);
1062 rowData = CmnUtils.getArrayRowData(alData, 12, rowNo);
1063 CmnUtils.debugPrint(tbName + ":" + rowNo);
1064 //for(int j=0;j<rowData.length;i++)CmnUtils.debugPrint(rowData[j]);
1065 tbName = rowData[COL01];
1066 objName = rowData[COL02];
1067 objTyp = rowData[COL03];
1068 pctFree = rowData[COL04];
1069 pctUsed = rowData[COL05];
1070 iniTrns = rowData[COL06];
1071 freeLst = rowData[COL07];
1072 flstGrp = rowData[COL08];
1073 bufPool = rowData[COL09];
1074 tblSpace = rowData[COL10];
1075 logging = rowData[COL11];
1076 segByts = rowData[COL12];
1077 pw[CONTENTS].print(") PCTFREE " + pctFree);
1078 if(!pctUsed.equals(""))pw[CONTENTS].print(" PCTUSED " + pctUsed);
1079 pw[CONTENTS].print(" INITRANS " + iniTrns + " STORAGE(");
1080 if(!freeLst.equals(""))pw[CONTENTS].print(" FREELISTS " + freeLst);
1081 if(!flstGrp.equals(""))pw[CONTENTS].print(" FREELIST GROUPS " + flstGrp);
1082 pw[CONTENTS].print(" BUFFER_POOL " + bufPool + ")");
1083 pw[CONTENTS].print(" TABLESPACE " + cp.DB_SQL_QUOTEDS[cp.dbType]+ tblSpace + cp.DB_SQL_QUOTEDE[cp.dbType]);
1084 if(logging.equals("NO")){
1085 pw[CONTENTS].print(" NOLOGGING" + cp.SQL_TERMINATOR[cp.dbType]);
1087 pw[CONTENTS].print(cp.SQL_TERMINATOR[cp.dbType]);
1090 pw[CONTENTS].print(")" + cp.SQL_TERMINATOR[cp.dbType]);
1093 pw[CONTENTS].println(strLine);
1096 pw[CONTENTS].close();
1098 br[WK_FILE].close();
1104 // Rhysical Contents end
1108 for(int i=0;i<cp.meta_sql[cp.dbType].length;i++){
1109 fl= new File(folder + "/" + cp.WK_FILE_NAME[i] + "_" + database + "." + cp.fileExtension);
1110 CmnUtils.debugPrint(fl.toString());
1114 // disconnect database
1116 CmnUtils.infoPrint("
\83\81\83^
\83f
\81[
\83^
\83A
\83\93\83\8d\81[
\83h
\82ð
\8fI
\97¹
\82µ
\82Ü
\82µ
\82½
\81B");
1118 } catch(SQLException se) {
1120 CmnUtils.errorPrint(se.toString());
1121 se.printStackTrace();
1122 se = se.getNextException();
1124 System.out.println(se.getMessage());
1127 } catch (Exception see) {}
1128 } catch (Exception e) {
1130 CmnUtils.errorPrint(e.toString());
1131 e.printStackTrace();
1133 } catch (Exception ee) {}
1136 for(int i=0;i<6;i++){
1142 for(int i=0;i<4;i++){
1148 } catch (Exception e) {}
1152 private String commentOnTable(CmnProps _cp, String _tableName, String _tableCmnt, int _type) throws Exception{
1154 if(!_tableCmnt.equals("")){
1155 if(_cp.dbType == _cp.DB_TYPE_ORACLE){
1156 retVal = "COMMENT ON TABLE " + _cp.DB_SQL_QUOTEDS[_cp.dbType]+ _tableName + _cp.DB_SQL_QUOTEDE[_cp.dbType]+ " IS '" + _tableCmnt.replaceAll("'","''") + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
1157 } else if(_cp.dbType == _cp.DB_TYPE_SQLSERVER){
1158 if(_type == _cp.TYPE_TABLE){
1159 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];
1160 } else if(_type == _cp.TYPE_VIEW){
1161 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];
1167 private String commentOnColumn(CmnProps _cp, String _tableName, String _colName, String _colCmnt, int _type) throws Exception{
1169 if(!_colCmnt.equals("")){
1170 if(_cp.dbType == _cp.DB_TYPE_ORACLE){
1171 retVal = "COMMENT ON COLUMN " + _cp.DB_SQL_QUOTEDS[_cp.dbType]+ _tableName + _cp.DB_SQL_QUOTEDE[_cp.dbType]+ "." + _cp.DB_SQL_QUOTEDS[_cp.dbType]+ _colName + _cp.DB_SQL_QUOTEDE[_cp.dbType]+ " IS '" + _colCmnt.replaceAll("'","''") + "'" + _cp.SQL_TERMINATOR[_cp.dbType];
1172 } else if(_cp.dbType == _cp.DB_TYPE_SQLSERVER){
1173 if(_type == _cp.TYPE_TABLE){
1174 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];
1175 } else if(_type == _cp.TYPE_VIEW){
1176 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];