[转]Shell脚本中获取SELECT结果值的方法
2015-06-22 11:47
363 查看
http://blog.itpub.net/13885898/viewspace-1670297/
有时候我们可能会需要在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 <<EOF
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 <<EOF
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
有时候我们可能会需要在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 <<EOF
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 <<EOF
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
相关文章推荐
- Linux-shell基础-3
- Shell逐行读取文件的4种方法
- shell文字过滤程序(十一):paste命令
- #!/usr/bin/env bash和#!/usr/bin/bash的比较
- Linux-shell基础-2
- 用PowerShell隐藏磁盘驱动器
- [SHELL]20150621前总结——基本常用操作语句
- login shell 和 nologin shell
- shell脚本批量生成配置文件
- bash之命令编辑快捷键
- 调用ShellExecute需要头文件
- Bash变量扩展修改符
- Linux Bash 快捷键大全
- Linux-shell基础-1
- shell小技巧
- 直接插入排序 Shell(希尔)排序
- shell知识点2
- shell知识点
- shell的初始化文件:/etc/profile和/etc/bashrc(bash.bashrc)
- linux系统中关于shell变量$*与$@的区别