我在这个论坛上看到了下面的脚本,它很有用
echo "This will print the Date"
VALUE=`sqlplus -silent apps/Z4vRD3me <<END
set pagesize 0 feedback off verify off heading off echo off
select sysdate from dual
exit;
END`
# xx=$(echo 'select sysdate from dual' | sqlplus -silent apps/Z4vRD3me)
echo $VALUE
echo "End of SQL" 但是在退出SQL*PLUS之后,我还想在进一步的unix脚本中使用存储在' value‘变量中的sysdata值
执行此脚本后,我们将返回到unix模式。然后如果我输入'echo $VALUE'/'$VALUE‘,它会显示"ksh: SQL*Plus::not found“。
你能给我一个解决方案来存储我的整个unix脚本所需的列值吗?
谢谢
发布于 2013-05-02 11:33:20
一个技巧是使用sql生成有效的shell命令并将其捕获到假脱机文件中。然后生成spoolfile
TMPFILE=tmp_$$.sh
sqlplus -silent user/password <<END
set feedback off
set head off
spool $TMPFILE
Select 'export value=' || To_Char(Sysdate) from dual;
Select 'export TblCount=' || To_Char(count(*)) from all_tables;
spool off
exit
END
#Run the commands you generated in the current process and remove temp
. $TMPFILE
rm $TMPFILE
echo $value
echo $TblCounthttps://stackoverflow.com/questions/8651567
复制相似问题