Oracle數據庫中如何從sql*plus向shell進行傳遞變量?在實際的操作中很多的人都遇到這樣的相關難題,即,不能使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