Atualmente, estou lendo algumas consultas do arquivo .sql abaixo
--SOURCE TABLE NAME
--SOURCE QUERY
SEL COL1, COL2, COL3, COL4,
COL5, COL6, COL7 WHERE COL5 = '2015-11-04 16:24:00.000000' FROM SOURCE TABLE;
--TARGET TABLE NAME
--TARGET QUERY
SEL COLUMN1, COLUMN2, COLUMN3, COLUMN4,
COLUMN5, COLUMN6, COLUMN7 FROM TARGET TABLE;
0,1
O código usado para ler o conteúdo do arquivo .sql está sendo exibido abaixo:
validate() {
queryNum=0
while true
do
((queryNum++))
read tableName
read comment
read sourceQuery
read blankLine
read tableName
read comment
read targetQuery
read primaryKeyCols || break
read blankLine
exQuery "$sourceQuery" sourceResults.txt
exQuery "$targetQuery" targetResults.txt
done < $1
}
A única desvantagem dessa abordagem é que não consigo ler a consulta SQL se ela estiver escrita em várias linhas. Tem que estar em uma única linha para fazê-lo funcionar.
Eu quero ser mais flexível ao ler as consultas. Existe alguma maneira que eu possa ler o multi line SQL no Unix. Por favor me ajude.