[各位大侠帮忙]编写脚本,在sqlplus中实现一个功能,需要交互,如何自动实现,详见正文

vicky1982 2010-05-18 11:26:30
编写脚本如下:

sqlplus / as sysdba << EOF
shutdown immediate;
startup;
recover database using backup controlfile until cancel; ----此处需要输入CANCEL,请各位大侠帮忙
disc;
quit;
EOF" >> $LOGFILE 2>&1

试了下面方法不行:
sqlplus / as sysdba << EOF
shutdown immediate;
startup;
recover database using backup controlfile until cancel << EOF
CANCEL
EOF

disc;
quit;
EOF" >> $LOGFILE 2>&1


请各位帮忙,多谢!!!!
...全文
219 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangser307 2010-12-29
  • 打赏
  • 举报
回复
楼上正解
gengruibbx 2010-05-19
  • 打赏
  • 举报
回复
明白了,你是在shell中调用sqlplus,给sqlplus送了一串指令,中间sqlplus报错需要接受键盘输入信息吧.
这串指令是作为参数送给sqlplus的,已经不受shell的控制,你可以查一下sqlplus的特性,是否可以关掉recover语句的交互,或者把要执行的功能写成一个.sql文件送过去试试.
vicky1982 2010-05-19
  • 打赏
  • 举报
回复
已解决,第一句后不要加;即可。
直接写成
recover database using backup controlfile until cancel
CANCEL

sabflying 2010-05-19
  • 打赏
  • 举报
回复
看看,有什么问题
steptodream 2010-05-18
  • 打赏
  • 举报
回复
没用过oracle 看不明白在那一句之后输入CANCEL
vicky1982 2010-05-18
  • 打赏
  • 举报
回复
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 999573 generated at 05/18/2010 09:42:52 needed for thread 1
ORA-00289: suggestion :
/opt/oracle/flash_recovery_area/CHRDB/archivelog/2010_05_18/o1_mf_1_67_%u_.arc
ORA-00280: change 999573 for thread 1 is in sequence #67


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
steptodream 2010-05-18
  • 打赏
  • 举报
回复
recover database using backup controlfile until cancel;
这一句执行之后 提示输入CANCEL的提示语句是什么?
steptodream 2010-05-18
  • 打赏
  • 举报
回复
用expect脚本实现哇!
yanjinbin0 2010-05-18
  • 打赏
  • 举报
回复
学习...
gengruibbx 2010-05-18
  • 打赏
  • 举报
回复
在shell提示输入,取得输入内容后拼执行语句.
  • 打赏
  • 举报
回复
linux主机之间的脚本交互可以用expect。

一个expect的教程
http://www.chinaunix.net/jh/24/594417.html



这篇是相关心得,一定要看看
http://blog.chinaunix.net/u3/94157/showart_2012045.html

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧