1234567891011121314151617181920212223242526 |
- SEP = ", "
- QUOTE = "\'"
- NEWLINE = System.getProperty("line.separator")
- def record(columns, dataRow) {
- OUT.append("INSERT INTO ")
- if (TABLE == null) OUT.append("MY_TABLE")
- else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
- OUT.append(" (")
- columns.eachWithIndex { column, idx ->
- OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
- }
- OUT.append(") VALUES (")
- columns.eachWithIndex { column, idx ->
- def skipQuote = dataRow.value(column).toString().isNumber() || dataRow.value(column) == null
- def stringValue = FORMATTER.format(dataRow, column)
- if (DIALECT.getFamilyId().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
- OUT.append(skipQuote ? "": QUOTE).append(stringValue.replace(QUOTE, QUOTE + QUOTE))
- .append(skipQuote ? "": QUOTE).append(idx != columns.size() - 1 ? SEP : "")
- }
- OUT.append(");").append(NEWLINE)
- }
- ROWS.each { row -> record(COLUMNS, row) }
|