首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨多个ksh脚本使用isql

跨多个ksh脚本使用isql
EN

Stack Overflow用户
提问于 2013-07-25 18:00:48
回答 1查看 1.1K关注 0票数 0

我对ksh脚本非常陌生,但是我有两个ksh脚本,每个脚本通过isql调用sybase存储过程。我看到的问题是,当我执行第一个脚本时,存储过程运行良好,但是当我执行第二个脚本时,会出现错误(isql、-b、-S值、-U值、-U值、-P值: not )。下面是代码片段

$SERVER、$DBO_USER和$DBO_PASSWORD的值在脚本的前面设置。

test1.ksh

代码语言:javascript
复制
ISQL_CMD="isql -b -S ${SERVER} -U ${DBO_USER} -P ${DBO_PASSWORD}"

VAR=`${ISQL_CMD} << EOF
set nocount on
go
set proc_return_status off
go
 declare @var_id int
       ,@rtnval   int

 exec @rtnval = DB_NAME..MY_STORED_PROC_1
                @parameter1 = ${VAR_IN}
               ,@parameter_output  = @var_id output
go
EOF`

它执行得很好,我在VAR变量中得到了值。

test2.ksh (VAR变量从test1.ksh传入):

代码语言:javascript
复制
ISQL_CMD="isql -b -S ${DSQUERY} -U ${DBO_USER} -P ${DBO_PASSWORD}"

RETURN_VALUE=`${ISQL_CMD} << EOF
set nocount on
go
declare @rtnval   int

exec @rtnval = DB_NAME..MY_STORED_PROC_2
                @var_id = '${VAR}' 
go
EOF`

我得到以下错误:

isql -b -S值-U值-P值:未找到

这些脚本可以彼此独立运行,因此不能保证在test2.ksh之前调用了isql,这就是为什么我在每个脚本中设置了ISQL_CMD变量。

own运行正常,但test2.ksh不运行,无论是从test1.ksh调用还是自己运行。尝试在调试中运行脚本,但没有提供任何进一步的信息。

EN

回答 1

Stack Overflow用户

发布于 2013-07-25 23:58:06

好吧,经过一整天的绞尽脑汁,我终于弄明白了。isql正在执行一些文件处理,并在isql命令之前几行设置IFS值。我必须重置或取消IFS一旦我完成和isql命令工作良好!取消设置IFS值的命令是:

代码语言:javascript
复制
unset IFS

感谢那些试图帮助你的人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17865445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档