免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1615 | 回复: 4

[其他] 求助shell中数据库连接问题 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-02 06:20:00
发表于 2016-02-27 15:01 |显示全部楼层
本帖最后由 ningliuxing 于 2016-02-27 15:13 编辑

aaa.txt内容为

张三        001
李四        002
王五        003

gzb表内容
bianhao               gongzi
---------------------------------
001                100.00
002                200.00
003                200.00
004                150.00
006                200.00

1、111.sh
#!/bin/ksh
source /home/db2inst1/sqllib/db2profile

db2 "connect to abcdb user www using www"
cat aaa.txt|while read A B
do
        C=`db2 -x "select gongzi from gzb where bianhao=‘$B’" `
      echo $A,$B,$C  >> bbb.txt
done

2、222.sh
#!/bin/ksh
source /home/db2inst1/sqllib/db2profile
cat aaa.txt|while read A B
do

db2 "connect to abcdb user www using www"
        C=`db2 -x "select gongzi from gzb where bianhao=‘$B’" `
      echo $A,$B,$C  >> bbb.txt
done

用第一种方法:会报错 数据库链接不存在
用第二种方法:操作成功,但是会在while do循环中不停的链接数据库

运行结果:
bbb.txt内容

张三,001,100
李四,002,200
王五,003,200

求助各位大神,为什么在shell中 数据库连接操作在do while 循环外不可用呢

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
发表于 2016-02-28 14:49 |显示全部楼层
好象是:
管道中的命令启动了子shell
子shell读不到父shell的设置@ningliuxing

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
发表于 2016-03-02 08:51 |显示全部楼层
2楼正解

不要用 cat file | while read xx; do x; done
改成:     while read xx; do x; done  < file  

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-02 06:20:00
发表于 2016-03-02 15:41 |显示全部楼层
回复 2# cao627
多谢,好像是子shell的问题

   

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-02 06:20:00
发表于 2016-03-02 15:41 |显示全部楼层
回复 3# yjh777


    多谢,改了试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP