2013-07-06 2 views
0

У меня есть файл с этим:Как удалить пробелы из SQLPLUS?

set linesize 1000 
set trimspool on 
set trimout on 
set pagesize 0 
set feedback off 

spool result.csv 

SELECT process_id || ';' || file_name || ';' || source || ';' || destination || ';' || type || ';' || transfer_name || ';' || message || ';' || message2 || ';' || destination_sub_group 
FROM table 
WHERE process_id = '12345'; 

И SQLPLUS зовет его Но это возвращение пустых пространств, специально message2 поле, ни малейшего представления о том, как удалить его?

Вот результат:

12345;filename.txt;X;X;4;X;xx = xxxx 

Warning: Using insecure memory! 

Decoding data.... 
Secret key is required to read it. 
Key for user ID "X" 
Error decrypting file '/apps/egs/gen/file_name.txt.pgp'. 
;INBOUND 

Спасибо!

  • я заменил некоторые значения с X.

Вот вывод я хотел бы:

12345;filename.txt;X;X;4;X;xx = xxxx Warning: Using insecure memory! Decoding data.... Secret key is required to read it. Key for user ID "X" Error decrypting file /apps/egs/gen/file_name.txt.pgp'.;INBOUND 

ответ

0

Попробуйте использовать TRIM для удаления задней и ведущие пробелы и REPLACE для удаления и перевода строки каретки возвращается:

SELECT process_id || ';' || file_name || ';' || source || ';' || destination || ';' || type || ';' || transfer_name || ';' || message || ';' || 
    replace(replace(trim(message2),CHR(10),' '),CHR(13),' ') || ';' || destination_sub_group 
    FROM table WHERE process_id = '12345'; 
+0

К сожалению, не работает, но спасибо за предложение! –

+0

@LeandroToshioTakeda Странно. Редактировать сообщение, чтобы показать, какой результат вы хотите достичь. –

+0

Привет @David Jashi, я его отредактировал. В принципе, я хотел бы всего лишь в одной строке! –

0

Добавить следующее:

COL the_stuff форма A1000

Затем добавьте "the_stuff" столбца псевдоним запроса:

ВЫБОР PROCESS_ID .... destination_sub_group the_stuff из ..

Это будет явно позволяют вам контролировать, как будет отображаться этот вывод.

Далее, чтобы иметь дело с вложенными перевода строки вашего выхода, обернуть вокруг много ПЕРЕВЕСТИ (..., CHR (10), '+')

Э.Г.

Это данные показывают с пробельными символами:

SQL> select 'line 1' || chr(10) || 'line2' || chr(10) || 'line 3' txt from dual; 

TXT 
------------------- 
line 1 
line2 
line 3 

Переводить заменить символы новой строки с "+":

SQL> select translate ('line 1' || chr(10) || 'line2' || chr(10) || 'line 3', 
         chr(10), '+') txt 
    from dual; 

TXT 
------------------- 
line 1+line2+line 3 

SQL> 
Смежные вопросы