>  기사  >  데이터 베이스  >  Shell脚本中获取SELECT结果值的方法

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

WBOY
WBOY원래의
2016-06-07 15:57:353216검색

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

本文永久更新链接地址

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.