使用 -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