您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/6/20 3:12:44发布24次查看
有时候我们可能会需要在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
本文永久更新链接地址:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product