导出文件中的空间Oracle SQL

5ssjco0h  于 12个月前  发布在  Oracle
关注(0)|答案(2)|浏览(147)

我有一个SQL文件如下:

set pages 0
set head off
set feedback off
set echo off
set termout off
set wrap off
spool /osp/tmp/bangdd/dumpthe.dump
select a.SERNUM ||','|| b.AMOUNT||','|| b.TOPPF||','|| a.RFPROF from voucher a, SCRATCHP b where b.ri=a.RFPROF and a.sernum='000010263549703';
spool off

字符串
输出文件与猫-A如下。

linus> cat -A dumpthe.dump
000010263549703,20000,020,6                                                     $


你可以看到,有许多空间从6到$.它使文件大小比正常的lager.我可以使用sed命令删除空间在文件中,但我想知道如果任何选项在Oracle SQL可以帮助?
当我改变我的查询如下

set pages 0
set head off
set feedback off
set echo off
set termout off
set wrap off
spool /osp/tmp/bangdd/dumpthe.dump
select a.SERNUM ||','|| b.AMOUNT||','|| b.TOPPF||','|| a.RFPROF || ',' from voucher a, SCRATCHP b where b.ri=a.RFPROF and a.sernum='000010263549703';
spool off


结果如下:

linus> cat -A dumpthe.dump
000010263549703,20000,020,6,                                                    $

c86crjj0

c86crjj01#

根据您发布的查询:

  • 000010263549703SERNUM列的值
  • 20000AMOUNT
  • 020TOPF
  • 6 $RFPROF

没有证据表明query在输出字符串的末尾连接了$
因此,你得到的正是你在该列中所得到的。有人在6$之间放了一堆空格。你能通过只查询该列来验证吗?
如果我是对的,你想去掉空格,用一个空字符串代替它们,例如。

select a.SERNUM ||','|| b.AMOUNT||','|| b.TOPPF||','|| 
--
replace(a.RFPROF, ' ', '')             --> this
--
from voucher a, SCRATCHP b 
where b.ri=a.RFPROF and a.sernum='000010263549703';

字符串
如果我错了,请发布示例数据来说明这个问题,这样我们就可以尝试重新创建它,看看会发生什么。

kupeojn6

kupeojn62#

更新后“设置trimspool关闭”到“设置trimspool上”.它可以帮助.

set pages 0
set head off
set feedback off
set echo off
set termout off
set trimspool on
spool /osp/tmp/bangdd/dumpthe.dump
select a.SERNUM ||','|| b.AMOUNT||','|| b.TOPPF||','|| a.RFPROF || ',' from voucher a, SCRATCHP b where b.ri=a.RFPROF and a.sernum='000010263549703';
spool off
exit

字符串
结果:

cat -A dumpthe.dump
000010263549703,20000,020,6,$

相关问题