eygle.com   eygle.com
eygle.com  
 

« April 10, 2005 | Blog首页 | April 12, 2005 »



April 11, 2005

如何从SQL*PLUS向shell传递变量

作者:eygle

出处:http://blog.eygle.com

论坛上有人问这个问题,说无法通过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]$ 
itpub上的Toms_zhang朋友提供了另外一种方法:
[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

Posted by eygle at 11:23 PM | Comments (5)



CopyRight © 2004-2008 eygle.com, All rights reserved.