在shell脚本中执行的抓取SQL
给定一个包含大量SQL语句的shell脚本,是否有一个选项可以将SQL语句重定向到stdout/file 脚本的结构如下所示: *列表中的i的在shell脚本中执行的抓取SQL,sql,unix,shell,sybase,Sql,Unix,Shell,Sybase,给定一个包含大量SQL语句的shell脚本,是否有一个选项可以将SQL语句重定向到stdout/file 脚本的结构如下所示: *列表中的i的 做 isql*credentials etc*虽然您也会得到输出,但-e(通常带有-n)选项将回显输入。如果您不想有输出选择等,您需要编写一个名为isql的函数,将命令行回送到一个文件,并运行isql到另一个文件 (在perl或python中更容易)使用一个变量保存您的here文档,然后您可以回显它 for i in *list* do
做
isql*credentials etc*虽然您也会得到输出,但-e(通常带有-n)选项将回显输入。如果您不想有输出选择等,您需要编写一个名为isql的函数,将命令行回送到一个文件,并运行isql到另一个文件
(在perl或python中更容易)使用一个变量保存您的here文档,然后您可以回显它
for i in *list*
do
read -r -d '' select <<-EOF
select *about 100 cols*
from $i + "_TAB"
go
EOF
isql *credentials etc* <<< "$select"
echo "$select" > a.out
done
*列表中的i的
做
read-r-d“”选择为延迟回复道歉。是的,这个选项会起作用,但我希望我不必编写太多代码:)无论如何,谢谢你,马克!丹尼斯,我也为迟来的回复向你道歉。我试过了,但根本没用。首先,echo$select
给了我一个有趣的输出(列出了pwd中的所有文件),然后DB没有返回任何记录(应该是;查询是正确的)。很抱歉,$select
应该有引号,因为您的查询可能有星号。我已经编辑了我的答案。
for i in *list*
do
read -r -d '' select <<-EOF
select *about 100 cols*
from $i + "_TAB"
go
EOF
isql *credentials etc* <<< "$select"
echo "$select" > a.out
done