2
私のoracle SQLスクリプトの出力形式を変更します。 私は名前のついたスクリプト:active_user.shを持っています。今問題は、キャプションなしで表示される出力をスクリプトで打ち切り、値のみが表示される場合です。oracle sqlのクエリ出力形式を変更します。
スクリプトは次のとおりです。
export CONNECT_STRING=$1
if [ x$2 == x ]
then echo First Parameter is connection string to DB and Second parameter have to be ORACLE_HOME variable && exit 1
else export ORACLE_HOME=$2
fi
export ORACLE_SID=OMEGA #fake
export PATH=$ORACLE_HOME/bin:$PATH
RAND=$$
sqlplus -s /nolog <<-EOF > /tmp/${RAND}.sql_out.temp
connect $CONNECT_STRING
set HEADING OFF
set PAGESIZE 0
set linesize 120
col metric_name format a40
col value format 999999990.9999
select count(*) from v\$session where username is not null and status='ACTIVE';
EOF
cat /tmp/${RAND}.sql_out.temp
そして、このスクリプトを実行するコマンドであり、出力は次のとおりです。
[[email protected] scripts]# ./active_users.sh "ora/[email protected]" /opt/oracle/instantclient_11_2
1
23.0000
しかし、私は実行しますsqlplusのクエリはそれを返すS:
COUNT(*)
----------
1
それは違いはありません:( –
を私は少し私の答えを変更し、私は、通常のスプールを使用しています。/offで出力を制御します。 – Aitor
はい、動作します。 –