Oracle spool文件转换为.txt文件。标题选项

Oracle spool文件转换为.txt文件。标题选项,oracle,Oracle,我正在尝试将Oracle文件假脱机为.txt文件。我想显示标题,但我正在进行修剪以消除多余的空格,并且“修剪”显示在标题中,当我有更多字段时,一些标题不会显示,因为它太长。如何消除字段之间的空格,或使标题仅显示字段名 set newpage none; set space 0; set feedback off; set linesize 5000; set pagesize 50000; set echo off; set termout off; set trimspool on; se

我正在尝试将Oracle文件假脱机为.txt文件。我想显示标题,但我正在进行修剪以消除多余的空格,并且“修剪”显示在标题中,当我有更多字段时,一些标题不会显示,因为它太长。如何消除字段之间的空格,或使标题仅显示字段名

set newpage none;
set space 0;
set feedback off; 
set linesize 5000;
set pagesize 50000; 
set echo off;
set termout off;
set trimspool on;
set colsep '|';
set heading on;
set headsep on;
set underline off;
set trim on;

spool /dch/sap_load/ZPONE_MCC/QE1/mock3/test_export.txt


SELECT
TRIM(    MATNR                  )|| '|' || 
TRIM(    WERKS                  )|| '|' || 
TRIM(    STLAN                  )|| '|' || 
TRIM(    DATUV                  )|| '|' || 
TRIM(    BMEIN                  )|| '|' || 
TRIM(    BMENG                  )|| '|' ||
TRIM(    STLAL                  )|| '|' ||
TRIM(    STLST                  )|| '|' ||
TRIM(    ZTEXT                  )|| '|' ||
TRIM(    AENNR                  )|| '|' ||
TRIM(    REVLV                  )|| '|' ||
TRIM(    LABOR                  )
FROM CLS_MCC1XX_BOM_HEADER;
这是我的输出的外观:

谢谢,
Marcie

通过连接修剪过的字符串,最终输出一个字段

一个选项是重命名该字段:

SELECT
TRIM(    MATNR                  )|| '|' ||
TRIM(    WERKS                  )|| '|' ||
TRIM(    STLAN                  )|| '|' ||
TRIM(    DATUV                  )|| '|' ||
TRIM(    BMEIN                  )|| '|' ||
TRIM(    BMENG                  )|| '|' ||
TRIM(    STLAL                  )|| '|' ||
TRIM(    STLST                  )|| '|' ||
TRIM(    ZTEXT                  )|| '|' ||
TRIM(    AENNR                  )|| '|' ||
TRIM(    REVLV                  )|| '|' ||
TRIM(    LABOR                  )
AS 'whatever heading you want'
FROM CLS_MCC1XX_BOM_HEADER;

您可以按照Matthew Strawbridge的建议使用列别名,但必须用双引号而不是单引号将其括起来:

SELECT ...
AS "MATNR|WERKS|STLAN|DATUV|BMEIN|BMENG|STLAL|STLST|ZTEXT|AENNR|REVLV|LABOR"
FROM CLS_MCC1XX_BOM_HEADER;
更重要的是,您受到标识符的最大长度限制,即30个字符,因此这在这里不起作用

另一种选择是制作假标题:

set heading off
prompt MATNR|WERKS|STLAN|DATUV|BMEIN|BMENG|STLAL|STLST|ZTEXT|AENNR|REVLV|LABOR
SELECT ...
FROM CLS_MCC1XX_BOM_HEADER;
禁用
set heading
(或
set pagesize 0
)时,可以抑制实际的、没有帮助的标题,而使用
提示符
SQL*Plus命令来编写所需的文本

您也可以从dual中选择“”,而不是使用
提示符
,但我发现它更干净了一点