免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3187 | 回复: 5
打印 上一主题 下一主题

一个转化db2 select 语句输出的脚本  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-22 16:24 |只看该作者 |倒序浏览
最近在db2 下工作,对db2 select 语句的输出排列感到不能容忍,便写个这个小脚本,使select语句的输出象informix isql的form查询那样。
  1. #!/usr/bin/ksh
  2. # This script was created by Valentine
  3. # if you prefer informix isql's output format to db2's,
  4. #     you can enjoy this small tool!
  5. #   Usage: sel "SQL_STATEMENT"
  6. #      exp:  sel "* from mytable where a>'1' fetch first 2 rows only"
  7. #
  8. #               valentine 2003/09/05
  9. #

  10. DB=${DEFAULTDBS:-${LOGNAME}}
  11. SCHEMA=${SCHEMA:-"schema"}
  12. TMPDIR="/tmp"
  13. TMPFILE1=$TMPDIR/sqldata.$$
  14. TMPFILE2=$TMPDIR/export.$$

  15. myexit()
  16. {
  17.        echo "You canceled the operation"
  18.        rm -f $TMPFILE1 >/dev/null 2>&1
  19.        rm -f $TMPFILE2 >/dev/null 2>&1
  20. }

  21. [ $# -lt 1 ] && echo "Usage: `basename $0` SQL_SELECT_STATEMENT" && exit
  22. trap "myexit" 2 3
  23. fields=`echo "$*"|sed  's/\(.*\)from.*/\1/'`
  24. table=`echo "$*"|sed  's/.*from *\([^ ]*\) *.*/\1/'|tr "[a-z]" "[A-Z]"`
  25. where=`echo "$*"|sed 's/.*from/from/'`

  26. db2 "connect to $DB" >/dev/null 2>&1||{ echo "can't connect  $BTPDBS";exit;}
  27. db2 "set schema $SCHEMA"  >/dev/null  2>&1
  28. db2 "describe select $fields from $table"|sed -e '1,9d' -e '$d' -e 's/,./,/g'|aw
  29. k '{printf("%s|",$4)}END{print}'  >$TMPFILE1 2>/dev/null
  30. db2 "export to $TMPFILE2 of del modified by coldel| select $fields $where" >/dev
  31. /null 2>&1
  32. cat $TMPFILE1 $TMPFILE2|tr -d '"' |sed 's/\([+,-]\)0*/\1/g'|awk -F'|' '{if(NR==1){split($0
  33. ,field)} else{for(i=1;i<=NF;i++){printf("%s [%s]\n",field[i],$i);}print("")}}'

  34. rm -f  $TMPFILE1
  35. rm -f  $TMPFILE2
  36. trap 2 3
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-09-22 17:40 |只看该作者

一个转化db2 select 语句输出的脚本

顶!
学习shell的目的不光是为了系统维护方便,更重要的就是要用它来解决应用问题,把复杂的问题简单化!
向老斑学习!

论坛徽章:
0
3 [报告]
发表于 2003-09-22 21:19 |只看该作者

一个转化db2 select 语句输出的脚本

工作做的很出色啊。*0~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-09-22 22:02 |只看该作者

一个转化db2 select 语句输出的脚本

你要常来溜达溜达呀,偶尔有空的话给大家过两招!  

论坛徽章:
0
5 [报告]
发表于 2003-09-23 08:34 |只看该作者

一个转化db2 select 语句输出的脚本

是好久没有见到老斑了

两位斑竹共同发威,shell版就更加旺了啊

论坛徽章:
0
6 [报告]
发表于 2003-09-23 09:17 |只看该作者

一个转化db2 select 语句输出的脚本

原帖由 "binary" 发表:
是好久没有见到老斑了

两位斑竹共同发威,shell版就更加旺了啊
   

shell版的兴旺是因为有新朋友的不断加入,更有老朋友的长期参与啊...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP