oracle 如何在SQL中从列中spool所有内容

mm5n2pyu  于 2023-04-29  发布在  Oracle
关注(0)|答案(1)|浏览(163)

我正在制作一个PS脚本,调用sql*plus脚本,然后通过邮件发送文件。
但问题是CSV中导出的结果在最后一列被截断,因为它是一个xml,并且每个标记之间有一个换行符
在Oracle SQL上,结果在一行中。
在csv中,只有这些选项:

SET lines 2500;
SET pages 1;

在'info'列的spool文件的输出如下所示:

'<?xml version='1.0' encoding='UTF-8'?>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
<error_response>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  <id>8cad0277-3a60-4cfd-a9c4-c272f69038ce</id>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
  <timestamp>2023-03-23T09:25:03.001Z</timestamp>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
  <error_lang>EN</error_lang>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
  <error_type>MULE:UNKNOWN</error_type>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
  <error_code>520</error_code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
  <error_msg>

现在我想要的是所有的东西都在一条线上
我已经尝试了几件事,但它截断它的520 - '<?xml version='1.0' encoding='UTF-8'?>
以下是我尝试过的所有事情:

SET Wrap OFF;
SET Longchunksize 90000;
SET Pagesize 0;
SET lin[esize] 5000;
SET TrimSpool ON;
SET long 2000000;
SET lines 32737;
column info format a120

没有工作仍然得到截断到520 xml我怎么能得到所有的数据包含在信息列?

qij5mzcb

qij5mzcb1#

换行符在您的数据中,SQL*Plus不会添加它们。你需要用一些不能出现在数据中的特殊字符来替换换行符,然后一旦你把数据送到它的最终目的地,用换行符来替换它们以恢复格式化的外观。
我喜欢使用没人见过的非打印控制字符:
浸提后:

SELECT REPLACE(info,CHR(10),CHR(21)) info
  FROM ...

最终目的地:

INSERT INTO target
SELECT REPLACE(info,CHR(21),CHR(10))
  FROM ...

同时确保你设置的线宽很大,你已经有了。

相关问题