我目前正在尝试将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
答案 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 - ...