您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页Shell脚本中获取SELECT结果值的方法

Shell脚本中获取SELECT结果值的方法

来源:爱玩科技网


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

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

#!/bin/ksh
#
# Created : 2015.05.25
# Updated : 2015.05.25
# Author : Jet Chenxi Zhang
# Description : Get SELECT result in Shell

# Variable Definitions #
Oracle_SID=audtest
ORACLE_HOME=/app/oracle/product/database/11.2.0/db_1
PATH=$PATH:$ORACLE_HOME/bin
DBNAME=

# Get Database name by quering v$database #
DBNMAE=`
sqlplus -s /nolog < set echo off feedback off heading off underline off;
conn / as sysdba;
select name from v\\$database;
exit;
EOF`

echo "Database name: "$DBNMAE

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

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

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

#!/bin/ksh
#
# Created : 2015.05.25
# Updated : 2015.05.25
# Author : Jet Chenxi Zhang
# Description : Get SELECT results in Shell

# Variable Definitions #
ORACLE_SID=audtest
ORACLE_HOME=/app/oracle/product/database/11.2.0/db_1
PATH=$PATH:$ORACLE_HOME/bin
QUERYRES=
DBID=
DBNAME=

# Get Database name by quering v$database #
QUERYRES=`
sqlplus -s /nolog < set echo off feedback off heading off underline off;
conn / as sysdba;
select dbid, name from v\\$database;
exit;
EOF`

DBID=`echo $QUERYRES | awk -F' ' '{print $1}'`
DBNAME=`echo $QUERYRES | awk -F' ' '{print $2}'`
echo "Database ID: "$DBID
echo "Database name: "$DBNAME

运行结果如下:

[oracle@hxddcx02 ~]$ ./query_dbname2.sh
Database ID: 811711272
Database name: AUDTEST

本文永久更新链接地址:

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务