Linux/Unix shell sql 之间传递变量

本文提供了Linux/UnixShell脚本与SQL之间传递变量的几个示例,通过这种方式极大提升了数据库管理员(DBA)的工作效率。包括接受SQL返回值的方式、将Shell变量作为参数传递给SQL脚本等。

灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考。

Linux/Unix 下调用SQL,RAMN 请参考:Linux/Unix shell 脚本中调用SQL,RMAN脚本

一、示例

[python] view plain copy print ?
  1. 1、shell变量接受sql返回值之方式一
  2. oracle@SZDB:~>more./retval.sh
  3. #!/bin/bash
  4. RETVAL=`sqlplus-silentscott/tiger<<EOF
  5. SETPAGESIZE0FEEDBACKOFFVERIFYOFFHEADINGOFFECHOOFF
  6. SELECT*FROMempWHEREename='SCOTT';
  7. EXIT;
  8. EOF`
  9. if[-z"$RETVAL"];then
  10. echo"Norowsreturnedfromdatabase"
  11. exit0
  12. else
  13. echo$RETVAL
  14. fi
  15. oracle@SZDB:~>chmodu+xretval.sh
  16. oracle@SZDB:~>./retval.sh
  17. 7788SCOTTANALYST756619-APR-8734171.8820
  18. 2、shell变量接受sql返回值之方式二
  19. oracle@SZDB:~>more./retval_2.sh
  20. #!/bin/bash
  21. #Author:RobinsonCheng
  22. #Blog:http://blog.youkuaiyun.com/robinson_0612
  23. sqlplus-S"scott/tiger"<<EOF
  24. SETPAGESIZE0FEEDBACKOFFVERIFYOFFHEADINGOFFECHOOFF
  25. colcntnew_valuev_cnt
  26. SELECTcount(*)cntFROMempWHEREdeptno=10;
  27. exitv_cnt
  28. EOF
  29. VALUE="$?"
  30. echo"showrowsfordeptno10:$VALUE"
  31. 3、将shell变量作为参数传递给sql脚本
  32. oracle@SZDB:~>more./retval_3.sh
  33. #!/bin/bash
  34. v_empno="$1"
  35. sqlplus-S"scott/tiger"<<EOF
  36. SETPAGESIZE0FEEDBACKOFFVERIFYOFFHEADINGOFFECHOOFF
  37. SELECTenameFROMempWHEREempno=$v_empno;
  38. exit
  39. EOF
  40. exit
  41. oracle@SZDB:~>./retval_3.sh7788
  42. SCOTT
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值