我正在尝试设置一个简单的循环来定期查询bash中的数据库表。通常,我似乎不得不这样做:
sqsh -s SERV -U user -P passwd -D db -L bcp_colsep=','然后在sqsh中,我必须输入:
select * from some_table where foo=bar
\go -m bcp > /path/to/output.out我尝试使用sqsh的-C选项传入命令,如下所示:
sqsh -s SERV -U user -P passwd -D db -L bcp_colsep=',' -C 'select * from some_table where foo=bar \go -m bcp > /path/to/output.out'但我一直在想:
Incorrect syntax near '\'.怎样才能得到想要的效果?
发布于 2014-01-30 16:43:16
当您使用SQL选项将-C语句传递给sqsh时,\go命令将被隐式执行。若要获得'bcp‘结果样式的输出,您需要使用-L参数设置变量'style=bcp’,或使用-mbcp作为命令行参数,仅将输出重定向到文件,或使用sqsh -o参数指定输出的文件名。因此,基本上您的命令将如下所示:
sqsh -S SERV -U user -P passwd -D db -L bcp_colsep=',' -m bcp \
-C 'select * from some_table where foo=bar' > /path/to/output.out马丁,HTH
https://stackoverflow.com/questions/21439380
复制相似问题