oracle---sqlplus搜索结果输出到文件

plsql可以很方便的把搜索结果保存到文件,但是如果需要一个一个教产品或者需求方使用,也很复杂。所以需要把这个操作也封装起来。

可以使用sqlplus的spool函数实现。

新建一个文本,命名成a.sql.

里面内容如下

spool check1.txt ;-------------指定生成的文件
select * from rf_link---------执行的sql语句
spool off;----------------------关闭文件


通过ant运行后,可以看到有了一个文本,但是每次执行都会覆盖前面的内容,如果要追加,则改为

spool check1.txt append ;-------------指定生成的文件
select * from rf_link---------执行的sql语句
spool off;----------------------关闭文件


但是又有问题,输出的内容太凌乱,没办法看,可以通过调整sql语句来优化结果,比如

spool check1.txt ;-------------指定生成的文件
select group_id||'#'||id||'#'||a.vehicle||'#'||a.energy_type||'#'||a.principle from SC_PLATERES_MANOEUVRE a where rownum<10;
spool off;----------------------关闭文件


上面的||是连接符,我用是#来分隔字段,用''把分隔符括起来。


这样结果看上去整齐多了,但是还存在一条数据分了多行来显示

SET LINESIZE 2000 ---把行的长度加大


每个记录都显示字段名,数据太冗余了

SET HEADING OFF -------不显示


其他还有些参数可以百度


调整后为:

spool check1.txt append;
SET NEWPAGE NONE 
SET HEADING OFF 
SET SPACE 0 
SET PAGESIZE 0 
SET TRIMOUT ON 
SET TRIMSPOOL ON 
SET LINESIZE 2000 
set colsep '#'                     
set newpage 1       
set term off 
set num 18                  
set feedback off 
select group_id||'#'||id||'#'||a.vehicle||'#'||a.energy_type||'#'||a.principle from SC_PLATERES_MANOEUVRE a where rownum<10;
spool off;

输出结果看上整齐多了。


你可能感兴趣的:(oracle---sqlplus搜索结果输出到文件)