http://community.csdn.net/Expert/topic/4805/4805845.xml?temp=.3366205各位大虾, 本人意图利用sqlplus的spool将表中的数据导出到文本文件中,但是遇到以下问题,求解决方法。问题如下: 环境:win2000 oracle9ir2 目前操作脚本(在sqlplus中执行): set heading off set pagesize 0 set feedback off set termout off spool c:\test.txt select a||','||b||','||c||','||d||','||e||','||f||','||g from test; spool off; 得到的test.txt文件内容(两个=====之间的内容)如下: ======== SQL> select a||','||b||','||c||','||d||','||e||','||f||','||g from test; 01,0101,01,测试,.01,.01,a 02,0201,02,测试2,1,1,b SQL> spool off; ======== 问题是文本文件格式不是我想要得,希望的文本文件格式如下: ======== 01,0101,01,测试,.01,.01,a 02,0201,02,测试2,1,1,b======== 即:将SQL>开头的去掉,只包含数据,而且最后保留一个空行。盼各位大虾给出解决方法,谢谢! ------------------------------------------------------------------- (这是一篇文章,555。楼主他知道怎么处理了,就是不肯说。)
set feeback off set heading off set verify off set termout off spool d:\output.txt select a||','||b||','||c||','||d||','||e||','||f||','||g from test / spool off / 先把上面的语句copy到一txt文件中,把文件名改为aaa.sql,放在d盘下面 sql*plus中执行 sql>@d:\aaa.sql
你可以使用oracle自己的utl_file对文件进行操作,不过这样的话要写成存储过程。没有 set feedback off …… spool file_namespool off 这样简单。
select aa,bb,cc from table1;
spool off
========
SQL> select a||','||b||','||c||','||d||','||e||','||f||','||g from test;
01,0101,01,测试,.01,.01,a
02,0201,02,测试2,1,1,b
SQL> spool off;
========
问题是文本文件格式不是我想要得,希望的文本文件格式如下:
========
01,0101,01,测试,.01,.01,a
02,0201,02,测试2,1,1,b
========即只要数据行就可以了。
http://community.csdn.net/Expert/topic/4805/4805845.xml?temp=.3366205
不过,那个楼主不厚道,问题解决了,却不把解决的方法公布。
5555555555555555555555555555555555555555
本人意图利用sqlplus的spool将表中的数据导出到文本文件中,但是遇到以下问题,求解决方法。问题如下:
环境:win2000 oracle9ir2
目前操作脚本(在sqlplus中执行):
set heading off
set pagesize 0
set feedback off
set termout off
spool c:\test.txt
select a||','||b||','||c||','||d||','||e||','||f||','||g from test;
spool off;
得到的test.txt文件内容(两个=====之间的内容)如下:
========
SQL> select a||','||b||','||c||','||d||','||e||','||f||','||g from test;
01,0101,01,测试,.01,.01,a
02,0201,02,测试2,1,1,b
SQL> spool off;
========
问题是文本文件格式不是我想要得,希望的文本文件格式如下:
========
01,0101,01,测试,.01,.01,a
02,0201,02,测试2,1,1,b========
即:将SQL>开头的去掉,只包含数据,而且最后保留一个空行。盼各位大虾给出解决方法,谢谢!
-------------------------------------------------------------------
(这是一篇文章,555。楼主他知道怎么处理了,就是不肯说。)
SQL> select a||','||b||','||c||','||d||','||e||','||f||','||g from test;
和
SQL> spool off;
这两行给去掉。
set heading off
set verify off
set termout off
spool d:\output.txt
select a||','||b||','||c||','||d||','||e||','||f||','||g from test
/
spool off
/
先把上面的语句copy到一txt文件中,把文件名改为aaa.sql,放在d盘下面
sql*plus中执行
sql>@d:\aaa.sql
set feedback off
……
spool file_namespool off
这样简单。