It depends on SQLServer's sqlcmd command line utility.
It takes 4 input parameters - needed to open a database connection, scans the current directory for .sql files then executes each of them using sqlcmd generating a .temp file. The temp file is then processed - the first and last 2 lines are removed - and renamed to a .csv file.
def username = args[0]
def password = args[1]
def host = args[2]
def database = args[3]
def dir = './'
def ant = new AntBuilder()
def p = ~/.*\.sql/
new File( dir ).eachFileMatch(p) { f ->
def sqlFile = f.name
def tempCsvFile = sqlFile.replaceAll(/.sql/,'')
def cmd = "sqlcmd -S $host -U $username -P $password -d ${database} -i ${sqlFile} -W -o ${tempCsvFile}.temp -s ;"
def process = cmd.execute()
process.waitFor()
ant.move(file: "${tempCsvFile}.temp", tofile:"${tempCsvFile}.csv", overwrite: true ) {
filterchain(){
headfilter(lines:"-1", skip: "2")
tailfilter(lines: "-1", skip: "2" )
ignoreblank()
}
}
}
This could probably be achieved in many other ways.
But it worked like a charm for me!!
Nenhum comentário:
Postar um comentário