我想创建一个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:找不到命令
请建议。
答案 0 :(得分:1)
&#39; ISQL&#39;一旦在数据库服务器(您提到的Linux服务器)中设置了Sybase ASE所需的环境变量,它将起作用。请查看以下链接了解更多详情:
更简单地说,应该有一个名为&#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(这取决于你的版本和路径)