2016-07-27 148 views
0

我想创建一个Windows批处理文件来对在Linux上运行的Sybase数据库执行查询。在Sybase数据库上执行查询时Isql命令错误

批处理文件:

plink.exe -ssh [email protected]<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:找不到命令

请指教。

回答

1

只要在数据库服务器(您提到的Linux服务器)中设置了Sybase ASE所需的环境变量,'isql'就会工作。请检查下面的链接了解详情:

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

在一个简单的音符,应该有一个名为“SYBASE.sh”内部“/ Sybase的(我猜的Sybase已经安装此目录中的文件,从你的示例代码)。您需要通过编辑用于连接到Linux服务器的用户的主目录内的'.bashrc'文件来获取此文件。

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

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

你可以用它代替“EOF”

+0

喜sumitkd任何其他词 - 感谢您的回复。在我的剧本我是从那里工作存在的isql目录下达命令。 (cd/sybase/OCS-15_0/bin /)..甚至需要设置环境变量 –

+0

是的。这是必需的。我不太确定这是如何工作的,但根据我的经验,我相信'isql'也需要其中一些环境变量正常工作。 – sumitkd

+0

嗨sumitkd - 感谢您的回复 - 给批处理脚本的环境变量后,现在它不给任何错误..但仍然不能执行查询.....我的输出是...... ---查询----- - 环境变量已完成--- 1> –