SQLPLUS-ORACLE 12-修剪多余的列空白

我在使用sqlplus假脱机(oracle 12c / 18c)时遇到问题。 我想在列中修剪额外的空白。

这是预期的结果

01JHON BROWN  30RED    
02MARIO ROSSI 25WHITE  

这是我的结果

01    JHON BROWN       30        RED         
02    MARIO ROSSI      25        WHITE    

这是sql代码

SET ECHO OFF
SET VERIFY OFF
SET FEEDBACK OFF
SET SERVEROUTPUT ON
SET HEADING OFF
SET PAGESIZE 0 
SET LInesIZE 2000
SET SQLBLANKLInes ON
SET FEEDBACK OFF
SET TIME OFF
SET TIMING OFF
SET COLSEP ''
SET TRIMSPOOL OFF
SET TERMOUT OFF

ALTER SESSION SET NLS_DATE_FORMAT='YYYYMMDD';
ALTER SESSION SET NLS_NUMERIC_CHARactERS='.,';

spool pippo.txt

SELECT TRIM(NUM),RPAD(NAME,12),TRIM(AGE),RPAD(COLOR,7)
FROM PLUTO;

spool off
exit

THX

zlm1zlm3zlm5 回答:SQLPLUS-ORACLE 12-修剪多余的列空白

这就是spool进行列格式化的方式-将每一行的值填充到列的整个宽度。 See this similar question来了解您的选择。

如果您不希望在列值之间有任何空格,则通常必须将它们连接到单个列中,例如

SELECT TRIM(NUM) || RPAD(NAME,12) || TRIM(AGE) || RPAD(COLOR,7)
FROM PLUTO;
本文链接:https://www.f2er.com/2770058.html

大家都在问