isql查询总结

使用 -O参数输出到参数或者文件???


注意此处:
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方式类推 






-----------------------------------
isql -UXXX  -PXXXX <<!  >/tmp/batch_insert.log
   use 数据库名
   go
   insert into itel_p values('0001000100000141','888888','S')
   go
   quit
!


1---------------------
通过Shell访问Sybase中的存储过程


ISQL="/opt/sybclient-12.5/bin/isql"
DB_NAME="DEV2"
USER="testdbo"
PASSWORD="111"
SP_NAME="dbo.get_status"


#connect to sybase
RESULT=`$ISQL -w 1000 -U$USER -P$PASSWORD -S$DB_NAME<<EOF


use dbtest
go
exec $SP_NAME
go
exit


EOF`


echo "$RESULT" | sed '1,2d;/^$/,$d' |
while read TABLE ROWS STATE
do
        echo "$TABLE $ROWS" | tr '[a-z]' '[A-Z]'
done


2--------------------------
在shell中调用sybase存储过程怎么获取存储过程反值?? 
create proc PR_TEST_SUN 
as 
return 100 


#!usr/bin 
ret=10 
isql -Ulatnjf -Platnjf -Slatn_test<<EOF 
declare @ss int 
exec @ss=PR_TEST_SUN 


select 'Result',@ss


exit :@ss 
EOF 
ret=$? 
echo $ret 


然后在shell中 判读 包含 Result 的行的结果就可以了。
3------------------------




[root@mydb root]# cat link_sybase.sh
#!/bin/bash
isql -U natuser -P zjtt@nat -S natdb <<END
use natdb
go


select count(*) from test_userdata
go


select * from test_userdata
go
END


执行这个脚本
[root@mydb root]# ./link_sybase.sh
4-----------------
shell:读取文件的每一行内容并输出
写法一:
----------------------------------------------------------------------------
#!/bin/bash


while read line
do
    echo $line
done < file(待读取的文件)
----------------------------------------------------------------------------


写法二:
----------------------------------------------------------------------------
#!/bin/bash


cat file(待读取的文件) | while read line
do
    echo $line
done
----------------------------------------------------------------------------


写法三:
----------------------------------------------------------------------------
for line in `cat file(待读取的文件)`
do
    echo $line
done
----------------------------------------------------------------------------


说明:
for逐行读和while逐行读是有区别的,如:
$ cat file
aaaa
bbbb
cccc dddd


$ cat file | while read line; do echo $line; done
aaaa
bbbb
cccc dddd


$ for line in $(<file); do echo $line; done
aaaa
bbbb
cccc
dddd
5--------------------------
isql -U -P -S -ic:\i.sql >;>;c:\1.log
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值