• [转]Shell脚本中获取SELECT结果值的方法


    http://blog.itpub.net/13885898/viewspace-1670297/

    有时候我们可能会需要在Shell脚本中执行SELECT语句,并将结果赋值给一个变量,对于这样的情形,我们可以用以下的方法来达到目的。

    点击(此处)折叠或打开

    1. #!/bin/ksh
    2. #
    3. # Created : 2015.05.25
    4. # Updated : 2015.05.25
    5. # Author : Jet Chenxi Zhang
    6. # Description : Get SELECT result in Shell
    7. # Variable Definitions #
    8. ORACLE_SID=audtest
    9. ORACLE_HOME=/app/oracle/product/database/11.2.0/db_1
    10. PATH=$PATH:$ORACLE_HOME/bin
    11. DBNAME=
    12. # Get Database name by quering v$database #
    13. DBNMAE=`
    14. sqlplus -s /nolog <<EOF
    15. set echo off feedback off heading off underline off;
    16. conn / as sysdba;
    17. select name from v\$database;
    18. exit;
    19. EOF`
    20. echo "Database name: "$DBNMAE

    如上代码,可以将获取Database Name,执行结果如下:

    1. [oracle@hxddcx02 ~]$ ./query_dbname.sh
    2. Database name: AUDTEST

    可以看到SELECT的结果已被正确赋值给Shell的变量。如果SELECT中有多个列的值,也可以用此方法,只是需要将结果进行分拆,如用awk:

    点击(此处)折叠或打开

    1. #!/bin/ksh
    2. #
    3. # Created : 2015.05.25
    4. # Updated : 2015.05.25
    5. # Author : Jet Chenxi Zhang
    6. # Description : Get SELECT results in Shell
    7. # Variable Definitions #
    8. ORACLE_SID=audtest
    9. ORACLE_HOME=/app/oracle/product/database/11.2.0/db_1
    10. PATH=$PATH:$ORACLE_HOME/bin
    11. QUERYRES=
    12. DBID=
    13. DBNAME=
    14. # Get Database name by quering v$database #
    15. QUERYRES=`
    16. sqlplus -s /nolog <<EOF
    17. set echo off feedback off heading off underline off;
    18. conn / as sysdba;
    19. select dbid, name from v\$database;
    20. exit;
    21. EOF`
    22. DBID=`echo $QUERYRES | awk -F' ' '{print $1}'`
    23. DBNAME=`echo $QUERYRES | awk -F' ' '{print $2}'`
    24. echo "Database ID: "$DBID
    25. echo "Database name: "$DBNAME

    运行结果如下:

    1. [oracle@hxddcx02 ~]$ ./query_dbname2.sh
    2. Database ID: 811711272
    3. Database name: AUDTEST
  • 相关阅读:
    基于git的源代码管理模型——git flow
    [Android]在Adapter的getView方法中绑定OnClickListener比较好的方法
    Java后台测试技巧
    JIRA python篇之展示多人未完成任务列表
    基于python3在nose测试框架的基础上添加测试数据驱动工具
    Java操作memcache
    对于软件测试行业的观察与反思
    通过Fiddler肆意修改接口返回数据进行测试
    Python操作MySQL数据库
    如何通过Fiddler模拟弱网进行测试
  • 原文地址:https://www.cnblogs.com/shengs/p/4593093.html
Copyright © 2020-2023  润新知