QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2572|回复: 7

在shell脚本中如何实现将select的结果输出到文本文件

[复制链接]
发表于 2004-11-15 12:04:12 | 显示全部楼层 |阅读模式
还有在脚本中连接数据库能不能不显示呀,就是在脚本中执行sqlplus uname/pwd时
不出现界面
sqlplus uname/pwd >> #不出现提示
select * from mytable > out.txt
exit
以上是瞎写的,就是想表达我的意思:)
发表于 2004-11-15 13:32:15 | 显示全部楼层
sqlplus 的spool 功能不是能专门实现这个功能的吗???

sqlplus> spool outfile.txt
sqlplus> spool on  开始记录

sqlplus> select * from sometable;

sqlplus> spool off  停止记录

sqlplus > help spool 查看用法.
回复

使用道具 举报

 楼主| 发表于 2004-11-15 15:26:32 | 显示全部楼层
我是利用脚本来执行的
不要手工进入sqlplus,
sqlplus uname/pwd < EOF
@sqlfile
exit
类似这种操作
回复

使用道具 举报

发表于 2004-11-15 16:12:57 | 显示全部楼层
spool 命令也可以放在脚本里.
回复

使用道具 举报

 楼主| 发表于 2004-11-15 17:20:48 | 显示全部楼层
我关健的问题是如何关闭在sqlplus uname/pwd (登录)时所出现的交互信息
回复

使用道具 举报

 楼主| 发表于 2004-11-15 17:26:13 | 显示全部楼层
我现在的脚本是这样的
sqlplus uname/pwd << EOF
set spool /home/test/data.txt
select * from tab
spool off
exit
head -20 > newdata.txt
但是登录界面及操作过程(select)的结果还是显示
但完成了得到数据文件的要求
还有head -20 > newdata.txt没有执行,为什么??
回复

使用道具 举报

发表于 2004-11-15 21:22:13 | 显示全部楼层
你在脚本的最前面 set echo off

或者 set feedback off 看看

我记得sqlplus有这个功能关闭这些输出信息的。
回复

使用道具 举报

 楼主| 发表于 2004-11-16 10:03:47 | 显示全部楼层
已经OK了谢谢各位,
但是我不理解“<<”代表什么操作,
它的后面有时会跟不同的东西如 <<+ 、 <<! 、<< EOF
都是什么意思呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-18 17:10 , Processed in 0.072635 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表