【问题标题】:SQLPLUS - ORACLE 12 - Trim extra columns white spaceSQLPLUS - ORACLE 12 - 修剪多余的列空白
【发布时间】:2020-05-01 10:45:11
【问题描述】:

我遇到了 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

谢谢

【问题讨论】:

  • 也许您想删除 列之间的多余空格,包括第 2 列和第 3 列之间的空格?

标签: oracle sqlplus trim space spool


【解决方案1】:

这就是列格式与 spool 一起使用的方式 - 每行的值都填充到列的整个宽度。 See this similar question 了解您的选择。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2018-08-26
    • 2017-03-16
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多