在shell脚本中使用sql

时间:2015-03-06 11:05:19

标签: sql shell

我目前正在尝试将sql语句集成到shell脚本中,但面临主要的语法问题:

我在剧本中的陈述:

su - <sid>adm -c 'hdbsql -U SYSTEM export "'SCHEMA'"."'*'" as binary into "'Export Location'" with reconfigure'

我收到以下错误:

* 257: sql syntax error: incorrect syntax near "*": line 1 col 16 (at pos 16) SQLSTATE: HY000

如果有人能帮助我,我真的很感激。

谢谢和问候, AK

1 个答案:

答案 0 :(得分:0)

您的命令行对我没有多大意义。它以

开头
su - <sid>adm

表示您正在重定向文件的内容&#34; sid&#34;进入&#34; su&#34;然后将该操作的结果重定向到文件&#34; adm&#34;。

第二个问题是,在给予adm的命令中,单引号在&#34; &#34;之前结束。这意味着,&#34; &#34;将被shell解释为文件glob:

-c 'hdbsql -U SYSTEM export "'SCHEMA'"."'*'" as binary into "'Export Location'" with reconfigure'

你需要逃避这样的单引号:&#34; \&#39;&#34;。

但我认为你解决问题的方法并不好。尝试减少问题,然后开始添加其他东西。所以首先尝试从&#34; hdbsql&#34;执行SQL语句。贝壳。它有效吗?

$ hdbsql
> YOUR SQL STATEMENT HERE

一旦有效,请尝试以用户身份从unix shell执行SQL语句:

$ hdbsql -U SYSTEM export ...

一旦有效,请尝试通过su

执行
$ su - ...