Skip to content

Instantly share code, notes, and snippets.

@connerk
Last active October 1, 2019 17:47
Show Gist options
  • Save connerk/1508415795de144c104a88a3814e61e1 to your computer and use it in GitHub Desktop.
Save connerk/1508415795de144c104a88a3814e61e1 to your computer and use it in GitHub Desktop.
DataGrip Export Scripts
var MyTable = "{{MYTABLE}}";
var NEWLINE = "\r\n";
function eachWithIdx(iterable, f) { var i = iterable.iterator(); var idx = 0; while (i.hasNext()) f(i.next(), idx++); }
function mapEach(iterable, f) { var vs = []; eachWithIdx(iterable, function (i) { vs.push(f(i));}); return vs; }
function output() { for (var i = 0; i < arguments.length; i++) { OUT.append(arguments[i]); } }
function InsertStatement() {
output("INSERT INTO " + MyTable + " (");
var columns = mapEach(COLUMNS, function (col) { return col.name(); });
output(columns.join(", "));
output(")");
}
function outputRow(row) {
output("VALUES (");
var values = mapEach(COLUMNS, function (col) {
var lineVal = FORMATTER.format(row, col);
if ( isDate(lineVal) || TrueString(lineVal)) { lineVal = QuoteWrap(lineVal); }
return lineVal;
});
output(values.join(", "));
output(")");
}
function QuoteWrap(str) {
return "'" + str + "'";
}
function TrueString(str) {
return !(str.search("SELECT") >= 0 && str.search("FROM") >= 0 ) && isNaN(str) && !(str.search('NULL') >= 0) ;
}
mapEach(ROWS, function (row) {
InsertStatement();
output(NEWLINE);
outputRow(row);
output(NEWLINE, "GO", NEWLINE);
});
function isDate(date) { return (isNaN(date) && !isNaN(Date.parse(date))); }
var MyTable = "{{MYTABLE}}";
var NEWLINE = "\r\n";
function eachWithIdx(iterable, f) { var i = iterable.iterator(); var idx = 0; while (i.hasNext()) f(i.next(), idx++); }
function mapEach(iterable, f) { var vs = []; eachWithIdx(iterable, function (i) { vs.push(f(i));}); return vs; }
function output() { for (var i = 0; i < arguments.length; i++) { OUT.append(arguments[i]); } }
function InsertStatement() {
output("INSERT INTO " + MyTable + " (");
var columns = mapEach(COLUMNS, function (col) { return col.name(); });
output(columns.join(", "));
output(")");
}
function outputRow(row) {
output("(");
var values = mapEach(COLUMNS, function (col) {
var lineVal = FORMATTER.format(row, col);
if ( isDate(lineVal) || TrueString(lineVal)) { lineVal = QuoteWrap(lineVal); }
return lineVal;
});
output(values.join(", "));
output(")");
if (!row.last()) { output(","); }
}
function QuoteWrap(str) {
return "'" + str + "'";
}
function TrueString(str) {
return !(str.search("SELECT") >= 0 && str.search("FROM") >= 0 ) && isNaN(str) && !(str.search('NULL') >= 0) ;
}
function isDate(date) { return (isNaN(date) && !isNaN(Date.parse(date))); }
InsertStatement();
output(NEWLINE);
output("VALUES ");
output(NEWLINE);
mapEach(ROWS, function (row) {
outputRow(row);
output(NEWLINE);
});
output("GO", NEWLINE);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment