zoukankan      html  css  js  c++  java
  • [转]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
  • 相关阅读:
    Android AHandle AMessage
    android java 与C 通过 JNI双向通信
    android 系统给应用的jar
    UE4 unreliable 同步问题
    UE4 difference between servertravel and openlevel(多人游戏的关卡切换)
    UE4 Run On owing Client解析(RPC测试)
    UE4 TSubclassOf VS Native Pointer
    UE4 内容示例网络同步Learn
    UE4 多人FPS VR游戏制作笔记
    UE4 分层材质 Layerd Materials
  • 原文地址:https://www.cnblogs.com/shengs/p/4593093.html
Copyright © 2011-2022 走看看