-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcsv2db.awk
More file actions
51 lines (33 loc) · 984 Bytes
/
Copy pathcsv2db.awk
File metadata and controls
51 lines (33 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
BEGIN {
# These can also be specified on the command line.
IT = "csv";
FS = "[\t]";
# Read in sql.
loadArray(insertSql, "customer_sql.xml");
insertSql["sql"] = insertSql["insertSql"];
copyArray(deleteSql, insertSql);
deleteSql["sql"] = deleteSql["deleteSql"];
}
(NR == 1) {
# Delete all rows from table.
closeDatabaseStatement(updateDatabase(deleteSql));
# Ignore headers.
next;
}
# Ignore empty lines.
($0 == "null") { next;}
# else
{
# Insert row.
insertSql[":id"] = NR - 1;
insertSql[":firstName"] = $1;
insertSql[":lastName"] = $2;
insertSql[":zip"] = integer(IT == "text" ? $3 : $8);
handle = updateDatabase(insertSql);
}
END {
print "Processed", NR, "row(s)";
if (handle != "") {
closeDatabaseStatement(handle);
}
}