我试图将Oracle文件假脱机到.txt文件。我想显示标题,但我正在做一个TRIM以消除额外的空间和'TRIM'正在标题中显示,当我有更多字段时,某些标题不会显示,因为它太长了。如何消除字段之间的空格或让我的标题只显示字段名称?
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
答案 0 :(得分:0)
通过连接修剪后的字符串,最终输出一个字段。
一种选择就是重命名该字段:
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;
答案 1 :(得分:0)
您可以使用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 off
(或set pagesize 0
)来抑制真实无用的标头,而是使用prompt
SQL * Plus命令编写所需的文本。
你也可以select '<your header>' from dual
而不是prompt
,但我发现它更清洁。