在Sybase数据库上执行查询时出现Isql命令错误

时间:2016-07-27 11:43:27

标签: sybase isql

我想创建一个Windows批处理文件,以便在Linux上运行的Sybase数据库上执行查询。

批处理文件:

plink.exe -ssh sybase@<IP> -pw <PW> -m C:\scripts\script1.bat -t > C:\scripts\testing.log

script1.bat

echo --- query 1 -----
cd /sybase/OCS-15_0/bin/
isql -Uimaldb_bkp -Pstart_bkp -SLinux1 -Dimaldb
sp_helpsegment
go
exit

它在isql命令之前正常工作,并在testing.log中提供输出:

  

---查询1 ----- bash:isql:命令找不到bash:sp_helpsegment:找不到命令bash:go:找不到命令

请建议。

3 个答案:

答案 0 :(得分:1)

&#39; ISQL&#39;一旦在数据库服务器(您提到的Linux服务器)中设置了Sybase ASE所需的环境变量,它将起作用。请查看以下链接了解更多详情:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc35823.1570/html/uconfig/X30690.htm

更简单地说,应该有一个名为&#39; SYBASE.sh&#39;的文件。内部&#39; / sybase&#39; (我想Sybase已经从您的示例代码安装在此目录中)。您需要通过编辑&#39; .bashrc&#39;来获取此文件。文件存在于用于连接Linux服务器的用户的主目录中。

要使sql工作,您需要一个标志来指示脚本中sql块的开始和结束。请尝试以下方法:

isql -Uimaldb_bkp -Pstart_bkp -SLinux1 -Dimaldb <<EOF
sp_helpsegment
go
EOF

您可以使用任何其他字词代替&#39; EOF&#39;

答案 1 :(得分:0)

我也面临同样的问题。 您需要插入sybase环境变量,如下所示:

. /sybase/ABD/SYBASE.sh
isql -U**** -P****** -S<SID> -X <<EOF

它将正常工作。请尝试这个。

答案 2 :(得分:0)

如果没有修改de server PATH的权限,可以找到isql的路径,这样执行:

/sybase/OCS-15_0/bin/isql -Uimaldb_bkp -Pstart_bkp -SLinux1 -Dimaldb

把isql安装的前缀PATH(这取决于你的版本和路径)