首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将命令传递给sqsh并一次性将输出输出到文件?

如何将命令传递给sqsh并一次性将输出输出到文件?
EN

Stack Overflow用户
提问于 2014-01-30 02:21:22
回答 1查看 14.3K关注 0票数 4

我正在尝试设置一个简单的循环来定期查询bash中的数据库表。通常,我似乎不得不这样做:

代码语言:javascript
复制
sqsh -s SERV -U user -P passwd -D db -L bcp_colsep=','

然后在sqsh中,我必须输入:

代码语言:javascript
复制
select * from some_table where foo=bar
\go -m bcp > /path/to/output.out

我尝试使用sqsh的-C选项传入命令,如下所示:

代码语言:javascript
复制
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'

但我一直在想:

代码语言:javascript
复制
Incorrect syntax near '\'.

怎样才能得到想要的效果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 16:43:16

当您使用SQL选项将-C语句传递给sqsh时,\go命令将被隐式执行。若要获得'bcp‘结果样式的输出,您需要使用-L参数设置变量'style=bcp’,或使用-mbcp作为命令行参数,仅将输出重定向到文件,或使用sqsh -o参数指定输出的文件名。因此,基本上您的命令将如下所示:

代码语言:javascript
复制
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

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21439380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档