Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle sqlplus从假脱机中删除\r\n\t_Oracle_Sqlplus_Trim_Oracle8i - Fatal编程技术网

Oracle sqlplus从假脱机中删除\r\n\t

Oracle sqlplus从假脱机中删除\r\n\t,oracle,sqlplus,trim,oracle8i,Oracle,Sqlplus,Trim,Oracle8i,是否有任何sql*plus命令从输出到spool文件的结果集中删除\r\n和\t?那就是“修剪”每一张唱片 过去我们使用了设置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

是否有任何sql*plus命令从输出到spool文件的结果集中删除
\r
\n
\t
?那就是“修剪”每一张唱片

过去我们使用了
设置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似乎不可用(


提前谢谢。

不用试一下就可以了

SET TAB OFF

是否达到预期效果?

我认为使用SQL*Plus指令无法做到这一点。SQL*Plus是一个非常瘦的客户机,它的设计目的不是从结果集本身接触数据

如果您不想使用内置的SQL函数来修改输出,那么我认为您必须对假脱机文件进行后期处理

按DCookie编辑: 由于我错过了OP最初提出的非翻译/基于CHR的解决方案的请求(我专注于OP的哀叹,他们坚持使用8i),为了公平起见,我将撤回我的答案,并将其作为本答案的一部分,因为它已被明确考虑。以下是我写的:

您可以针对Oracle 8的情况尝试使用TRANSLATE函数:

SELECT TRANSLATE(L,'A'||CHR(10)||CHR(9)||CHR(13),'A') FROM test;

您的意思是当这些字符是数据的一部分时删除它们(而不是在没有提供字符的情况下流式传输SQL*Plus输出)?是的,从输出列中删除它们。如果您安装了OWA_模式包,您是否可以编写自己的包装函数来模拟regexp_replace()?可能是一个通用的strip/trim函数来简化查询-因此,如果您发现另一个要删除的字符,您可以更改该函数,而不是所有查询。TRANSLATE会帮助您解决Oracle 8问题吗?是的,也得出了“不会发生”的结论。谢谢