是否有任何 sql*plus 命令可以从输出到假脱机文件的结果集中删除\r
\n
和删除?\t
也就是说,“修剪”每条记录?
我们过去使用 set trim on
过,但它似乎并不适合我们现在需要的东西。我试图避免在 sql 查询中调用 oracle 的 translate、chr 函数。
例如,
set termout off
set spool somefile.dat
set lin 600
select data from mytable;
set spool off;
exit;
我的查询返回这个
|DATA|
|\n \t\t\t\t\t thisistheactualdata \t\t\t\t\t\t\n|
我想把它保存在我的假脱机文件中
thisistheactualdata
更新
好吧,我们最终做了这样的事情。
set tab off;
spool /home/oracle/out.dat
set linesize 20
set termout off
set trim on
select regexp_replace(l,'(\t|\n)','') from test;
spool off;
exit;
但是有一些坏消息:我们需要在 oracle 8 中运行它,而 regexp_replace 似乎不可用。:(
提前致谢。