在shell脚本中使用 isql 执行SQL语句 查询sybase数据库中满足条件的记录条数,怎么把查询结果赋给变量?

语句如下:#!/bin/bashisql-Unatuser-Pzjtt@nat-Snatdb<<ENDusenatdbgoselectcount(*)fromtest_u... 语句如下:
#!/bin/bash
isql -U natuser -P zjtt@nat -S natdb <<END
use natdb
go
select count(*) from test_userdata
go
END
这个执行完后,我想判断是否存在记录,存在的话我就update,不存在的话我就insert,但是不知道怎么把结果赋给变量,也就不知道该怎么判断。刚学shell,很多概念不大懂,在线等。
展开
 我来答
iahner
2011-10-20 · TA获得超过156个赞
知道答主
回答量:99
采纳率:0%
帮助的人:54.2万
展开全部
注意此处:
isql -U natuser -P zjtt@nat -S natdb <<END
如下供参考
·1 若要重定向到文件
isql -U natuser -P zjtt@nat -S natdb <<END >out.txt
即将查询结果重定向到out.txt文件中

·2若要输出至变量
isql -U natuser -P zjtt@nat -S natdb <<END |read xarg

·3若要循环输出至变量,可参照read方式类推
追问
今天测试 写到文件可行,写到变量貌似不行。不过最后我用shell调用存储过程解决了。
追答
【基于oracle数据库】
·1、如果想将sqlplus的多个查询结果循环输出至变量,那是不明智的选择。
-->因为,sqlplus的查询有点儿封闭,如果采用while循环将查询结果赋值给变量,那就会导致每输出一行,就会执行一次sqlplus,效率低下至极,所以一般都是将查询结果为多行的操作先一次输出至文件,在利用文件执行遍历。附利用sqlplus执行多行查询并输出至变量:
sqlplus -s uid/pwd@ora_tns <<!| while read stout
select col_a,col_b from table;
!
do
echo $col_a,$col_b
done
______________________________________________________________________

没用过Sybase啊,抱歉
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式