Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103631420
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-02 08:41:37

来源:赛迪网    作者:31913

很多人在实际的工作和学习中,都遇到了无法通过sqlplus向shell传递变量,下面我们来介绍一个实例脚本来进行折中处理。

[oracle@jumper oracle]$ cat a.sh
sqlplus -S "/ as sysdba" << !
set heading off
col today noprint
column today new_val dat
select to_char( sysdate, 'yyyy-mm-dd') today from dual;
host echo 'today is ' &dat
exit;
exit;
!
[oracle@jumper oracle]$ ./a.sh

today is  2005-04-11

[oracle@jumper oracle]$

下面我们再来介绍另一个实例方法:

[oracle@jumper oracle]$ more a.sh

#!/bin/ksh
VALUE=`sqlplus -silent "/ as sysdba" < < END
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v\\\$log_history;
exit;
END`

if [ -z "$VALUE" ]; then
echo "No rows returned from database"
exit 0
else
echo "Max Sequence Number: $VALUE"
fi


[oracle@jumper oracle]$ ./a.sh
Max Sequence Number:        17
阅读(369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~