Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中一个接一个地运行多个sql语句?_Bash_Db2 - Fatal编程技术网

如何在bash中一个接一个地运行多个sql语句?

如何在bash中一个接一个地运行多个sql语句?,bash,db2,Bash,Db2,在我的bash脚本中,我有一个SQL查询列表,定义如下: #!/bin/bash declare -a queriesToRun=("SELECT count(*) from table1" "SELECT count(*) from table2" "select count(*) from table3") 我希望运行每个语句(一个接一个),并在控制台上查看输出。我试过: db2 connect to mydb for val in ${queriesToRun[@]}; do ca

在我的bash脚本中,我有一个SQL查询列表,定义如下:

#!/bin/bash

declare -a queriesToRun=("SELECT count(*) from table1" "SELECT count(*) from table2" "select count(*) from table3")
我希望运行每个语句(一个接一个),并在控制台上查看输出。我试过:

db2 connect to mydb

for val in ${queriesToRun[@]}; do

cat > "temp_script" << END
--#SET TERMINATOR @
$val@
END

echo `db2 -ntd~ -f temp_script`

rm temp_script

done
db2连接到mydb
用于${queriesToRun[@]}中的val;做
cat>“临时脚本”尝试以下操作:

db2 connect to mydb

declare -a queriesToRun=(
    'SELECT count(*) from table1'
    'SELECT count(*) from table2'
    'select count(*) from table3'
)

for val in "${queriesToRun[@]}"; do
    db2 -ntd~ -f /dev/stdin <<EOF
    --#SET TERMINATOR @
    ${val}@
EOF
done
db2连接到mydb
声明-查询器=(
'从表1中选择计数(*)'
'从表2中选择计数(*)'
'从表3中选择计数(*)'
)
对于“${querystorun[@]}”中的val;做
db2-ntd~-f/dev/stdin试试这个:

db2 connect to mydb

declare -a queriesToRun=(
    'SELECT count(*) from table1'
    'SELECT count(*) from table2'
    'select count(*) from table3'
)

for val in "${queriesToRun[@]}"; do
    db2 -ntd~ -f /dev/stdin <<EOF
    --#SET TERMINATOR @
    ${val}@
EOF
done
db2连接到mydb
声明-查询器=(
'从表1中选择计数(*)'
'从表2中选择计数(*)'
'从表3中选择计数(*)'
)
对于“${querystorun[@]}”中的val;做

db2-ntd~-f/dev/stdin注意,使用
echo`some command…`
的shell脚本只需将命令的输出平展到一行,所有空格序列(空格、制表符、换行符)都由一个空格代替。通常,您最好单独使用
一些命令…
。这也意味着shell没有做那么多的工作。请注意,使用
echo`some command…`
的shell脚本只是将命令的输出平展到一行,所有空格序列(空格、制表符、换行符)都由一个空格替换。通常,您最好单独使用
一些命令…
。这也意味着shell没有做那么多的工作。