В настоящее время я читаю несколько запросов из приведенного ниже файла .sql
--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
Код, используемый для чтения содержимого файла .sql, показано ниже:
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
}
Единственным недостатком этого подхода является то, что я не могу прочитать запрос SQL, если он написан в несколько строк. Он должен быть в одной строке, чтобы он работал.
Я хочу быть более гибким при чтении запросов. Есть ли способ прочитать многострочный SQL в Unix. Пожалуйста, помогите мне.