Home  >  Article  >  Database  >  Shell脚本中获取SELECT结果值的方法

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

WBOY
WBOYOriginal
2016-06-07 15:57:353216browse

有时候我们可能会需要在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

本文永久更新链接地址

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn