ablog

不器用で落着きのない技術者のメモ

SQL*Plus実行結果をシェル変数に格納する方法

SQL*Plus にヒアドキュメントで SQL を渡し、全体をバッククオート(`)で囲めばよい。"$"などはエスケープする必要がある。

$ TRACE_DIR=`sqlplus -s <<EOF
conn as sysdba
set heading off
set sqlblanklines off
set pagesize 0
set trimout on
select value from V\\$DIAG_INFO where name = 'Diag Trace';
exit
EOF`
$ echo $TRACE_DIR
/u01/app/oracle/diag/rdbms/orcl/orcl1/trace