【问题标题】:Isql command error while executing query on Sybase database在 Sybase 数据库上执行查询时出现 Isql 命令错误
【发布时间】:2016-12-01 09:46:33
【问题描述】:

我想创建一个 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: 找不到命令

请指教。

【问题讨论】:

    标签: sybase isql


    【解决方案1】:

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

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

    放置 isql 安装的前缀 PATH(取决于您的版本和路径)

    【讨论】:

      【解决方案2】:

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

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

      它会正常工作的。请试试这个。

      【讨论】:

        【解决方案3】:

        一旦在数据库服务器(您提到的 Linux 服务器)中设置了 Sybase ASE 所需的环境变量,“isql”就会起作用。详情请查看以下链接:

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

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

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

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

        您可以使用任何其他词来代替“EOF”

        【讨论】:

        • 嗨 sumitkd - 感谢您的回复 .. 在我的脚本中,我从 isql 所在的工作目录发出命令。 (cd /sybase/OCS-15_0/bin/)..是否需要设置环境变量
        • 是的。这是必需的。我不太确定它是如何工作的,但根据我的经验,我相信 isql 也需要其中一些环境变量才能正常工作。
        • 嗨 sumitkd - 感谢您的回复 - 在批处理脚本中提供环境变量后,现在它没有给出任何错误..但仍然无法执行查询.....我的输出是...... ... --- 查询 ----- -- 环境变量完成 --- 1>
        • 我已经更新了我的原始答案以包含对此的建议。
        猜你喜欢
        • 1970-01-01
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多