SQL-Insert-Statements.sql.groovy 1015 B

1234567891011121314151617181920212223242526
  1. SEP = ", "
  2. QUOTE = "\'"
  3. NEWLINE = System.getProperty("line.separator")
  4. def record(columns, dataRow) {
  5. OUT.append("INSERT INTO ")
  6. if (TABLE == null) OUT.append("MY_TABLE")
  7. else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
  8. OUT.append(" (")
  9. columns.eachWithIndex { column, idx ->
  10. OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
  11. }
  12. OUT.append(") VALUES (")
  13. columns.eachWithIndex { column, idx ->
  14. def skipQuote = dataRow.value(column).toString().isNumber() || dataRow.value(column) == null
  15. def stringValue = FORMATTER.format(dataRow, column)
  16. if (DIALECT.getFamilyId().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
  17. OUT.append(skipQuote ? "": QUOTE).append(stringValue.replace(QUOTE, QUOTE + QUOTE))
  18. .append(skipQuote ? "": QUOTE).append(idx != columns.size() - 1 ? SEP : "")
  19. }
  20. OUT.append(");").append(NEWLINE)
  21. }
  22. ROWS.each { row -> record(COLUMNS, row) }