ExecuteSQLUpdates.groovy
28/01/2009
import groovy.text.*
import groovy.sql.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.text.*;
boolean debug = false;
void printUsage() {
println "Usage: ExecuteUpdates.groovy [-debug] [-url URL] [SQL File]"
println " ExecuteUpdates.groovy [-debug] [-url URL] [SQL UPDATE/INSERT/DELETE Query]"
println ""
println " NOTE: For executing more than one query you can use character / to separate them."
println ""
println " This script is able to execute any type of queries, (usefull to create stored procedures)"
System.exit(1);
}
// Prepare connection ------------------------------------------
driver = "oracle.jdbc.OracleDriver";
url = "jdbc:oracle:thin:USER/PASS@HOST:1521:DB"
// -------------------------------------------------------------
// Verify inputs
if(args == null || args.length == 0 || args[0].length() == 0) printUsage()
switch(args[0]) {
case ["-debug", "--debug", "debug", "-d"]:
debug = true
if(args.length == 1 || args[1].length() == 0) printUsage()
args[0] = args[1]
if(args.length >= 3 && args[2].length() > 0) args[1] = args[2]
if(args.length >= 4 && args[3].length() > 0) args[2] = args[3]
break;
case ["-url", "--url", "url"]:
if(args.length < 3 || args[1].length() == 0 || args[2].length() == 0)
printUsage()
url = args[1]
args[0] = args[2]
if(args.length > 3 && args[3].length() > 0) args[1] = args[3]
break;
default:
if(args[0].startsWith("-")) printUsage()
break;
}
switch(args[0]) {
case ["-debug", "--debug", "debug", "-d"]:
debug = true
if(args.length == 1 || args[1].length() == 0) printUsage()
args[0] = args[1]
if(args.length >= 3 && args[2].length() > 0) args[1] = args[2]
if(args.length >= 4 && args[3].length() > 0) args[2] = args[3]
break;
case ["-url", "--url", "url"]:
if(args.length < 3 || args[1].length() == 0 || args[2].length() == 0 || args[3].length() == 0)
printUsage()
url = args[1]
args[0] = args[2]
break;
default:
if(args[0].startsWith("-")) printUsage()
break;
}
println "Using URL: "+url
// ------- This script is not finish because I did not manage to add the entire code in -------