SQLPLUS - ORACLE 12 - Обрезать лишние столбцы пробелами - PullRequest
0 голосов
/ 14 января 2020

У меня проблема с катушкой sqlplus (oracle 12c / 18 c). Я хочу обрезать лишние пробелы в столбцах.

Это ожидаемый результат

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

1 Ответ

1 голос
/ 14 января 2020

Так работает форматирование столбцов с spool - значения каждой строки дополняются до полной ширины столбцов. См. Этот похожий вопрос , чтобы получить представление о ваших параметрах.

Если вам не нужны пробелы между значениями столбцов, вам обычно приходится объединять их в один столбец, например

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