运行脚本时退出oracle用户会话

时间:2014-10-08 21:28:10

标签: oracle bash shell ubuntu

我在Ubuntu系统上遇到bash脚本问题。我需要编写一个脚本,该脚本连接到oracle一个对文本文件的一些查询。

几乎所有这些任务都已完成,但脚本并没有按原样运行。

要生成与oracle的连接,我在脚本中使用以下行:

su oracle
export ORACLE_SID=DB_SID
export ORACLE_HOME=[ORACLE_PATH]
export TWO_TASK=[HOSTNAME:PORT]
export PATH=$ORACLE_HOME/bin:$PATH
sqlplus -s usr/pass << EOF

在随后的行中,我进行了数据的所有假脱机,最后从sqlplus退出,我使用以下行:

quit;

从sqlplus

进行diconnect
exit 

退出su oracle会话

EOF

在EOF标签之后,我放了一些其他命令来执行。

问题出在我运行脚本的时候:

user# sh MyScript.sh

脚本只执行&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; EOF并返回给我的终端控制仍然记录为oracle用户。

oracle@user#

如果我输入&#39;退出&#39;然后按Enter键,然后执行脚本的其余部分。

我需要脚本在没有这个中间步骤的情况下从头到尾执行,但我不知道如何。

提前致谢。

1 个答案:

答案 0 :(得分:0)

最后,使用[su oracle]来导出环境变量是不必要的,所以我只是删除了这行:

su oracle

这个过程就像一个魅力。

感谢所有帮助过的人。