对于一些项目来说,不能使用plsqldev直接连上数据库,而只能通过telnet、ssh等方式登上终端,再在终端上运行sqlplus来查询。有时查询出来的数据太多,一个屏幕装不下,或者需要对查出来的数据作进一步整理、统计,这时就需要把查询结果导出成一个文件。
使用sqlplus的spool功能也能做到,但比较复杂。经过我几次总结,并结合网上的实例,整理出一个方便的方法,帖上来与大家分享一下。
1.新建一个expqry.sh的shell,写下如下语句:
#!/bin/bash
sqlplus -s user/pass@db << EOFa
set pagesize 0 linesize 2000 feedback off tab off colsep |
@somesql.sql
disconnect;
quit;
EOFa
配置expqry.sh,设置数据库的用户名user,密码pass,数据库db;
本例中将字段分隔符设为“|”,如果不喜欢,想用默认的TAB的话,可以将第三行改为
set pagesize 0 linesize 2000 feedback off tab off
2.新建一个sql文件somesql.sql,写上一些sql语句;
3.expqry.sh和somesql.sql放到同一目录下;
4.执行expqry.sh > outfile,就可将查询结果导出到outfile了。
可以对我的文档直接进行修改。附件如下: