A. LINUX下shell脚本如何执行 sql脚本 到DB2数据库
1、在gedit中编写.sh格式的文件,保存为a.sh。
B. 在shell脚本中使用 isql 执行SQL语句 查询sybase数据库中满足条件的记录条数,怎么把查询结果赋给变量
放在一个批处理中执行就可以了
use natdb
go
declare @Nrows integer
select @Nrows=count(*) from test_userdata
if @Nrows>0
update ....
else
insert ...
go
C. 怎么在shell脚本里面获得sqlplus执行的结果
请参考下面这个方法:
备注:getDbUserByTableName$TableName是获取表在哪个数据库的。你可以直接把$DbUSER换成tns串或者别名即可。
#sqlplus连接数据库的方法
#需要传入两个参数,第一个是表名,一个是需要执行的sql语句,一条语句作为一行
sqlBossDb(){
TableName=$1
SqlStr=$2
getDbUserByTableName$TableName
DbUSER=`catdbuser.temp`
Note_Log"$DbUSER连接数据库,执行语句$SqlStr"
evalecho${$DbUSER}>aaa.temp#查询出来是sqlDbUser.cfg中DBUSERNAME项,需要换成DBUSERSTR项
DbUSER=`cataaa.temp`
#Note_Log"开始$DbUSER"
sqlplus$DbUSER<<!
setlinesize1000
$SqlStr
commit;
quit
!
e
D. SHELL脚本如何处理sql执行结果
pid id
1 2
1 3
1 4
1 5
2 3
2 4
3 5
存放在6.txt中,可以用工具将数据转换为SQL,然后拷贝到执行SQL的工具中执行
cat6.txt|awk'NR>1{printf("insertintotable_name(pid,id)values("%s","%s"); ",$1,$2);}'
输出:
insert into table_name (pid,id) values ("1","2") ;
insert into table_name (pid,id) values ("1","3") ;
insert into table_name (pid,id) values ("1","4") ;
insert into table_name (pid,id) values ("1","5") ;
insert into table_name (pid,id) values ("2","3") ;
insert into table_name (pid,id) values ("2","4") ;
insert into table_name (pid,id) values ("3","5") ;
如果需要插入在一个事务中完成,可以视数据库类型自己在SQL前后增加
begin
commit
这类语句。
E. 如何在shell脚本中,判断一个基本命令执行是否成功
命令执行是否成功主要由 命令自己确定,如果它出错 它会返回一个非0的退出状态
这个退出状态通过 $? 内置变量获取
在shell脚本的编写过程中 逻辑运算 ( && ||)就是由退出状态决定
0 表示 true(正常) 非零表示false(异常),异常退出值可以有很多不同的值,这些值就表示了错误类型。
function exit_status(){
( exit $1 )
}
这个函数会根据参数返回错误状态
exit_status 123
echo $? #输出退出状态 123
另外解释以下 c语言和 shell 脚本的关系。
标准 c/c++语言 main函数
int main(int argc,char **argv){
}
main的返回值就是这个程序的命令行退出状态。
F. 如何在shell脚本中,判断一个基本命令执行是否成功
1.连接到相应的Linux主机,进入Linux命令行状态,等待shell命令的输入。
G. shell脚本执行sql传出结果
shell脚本执行sql需要输出结果,可以在shell脚本中写入语句,执行完成sql语句后,结果定向输入到一个txt文本文件中,再把txt文本文件存放在固定的文件夹中即可。
H. 如何在shell脚本中,判断一个基本命令执行是否成功
用特殊变量:$?
判断前一个命令的执行是否成功(或者说是返回码)
执行成功变量的值是0,不是零表示没有执行成功
例如:
注意:一定要在命令执行后立即判断,否则后面的代码会冲掉$?变量的值。
I. 在shell脚本中使用 isql 执行SQL语句 查询sybase数据库中满足条件的记录条数,怎么把查询结果赋给变量
注意此处:
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方式类推
J. shell脚本怎么获取sql select count(*)语句的结果
单引号换成双引号:
echo “select count(*) from ${tablename};” | sqlplus $ACCOUNT/$PASSWORD@$ORACLE_LOGIP:1521/$SID > ${TMPFILE}