как в sqlplus удалить пробелы при выводе отчета

oracle sqlplus отчеты

делаю отчет и ни одна из опций не помогает решить эту проблему

делаю set linesize 1000
он дополняет линию пробелами, а если set linesize 1000, то
он просто обрежет мою строку, потому что она может быть
разной длины

set define on
set verify off
set heading off
set serveroutput off
set pause off
set feedback off
set time off
set linesize 1000
set trimspool on
set echo off

col sys_date new_value curr_date;
col start_date new_value str_date;
col end_date new_value nd_date;
select to_char(sysdate,'yyyy_mmdd_hh24_miss')||'.log' sys_date from dual;
select to_char(to_date('&1','dd/mm/yyyy')-1,'dd/mm/yyyy')||' 20:00:00' start_date from dual;
select to_char(to_date('&2','dd/mm/yyyy')-1,'dd/mm/yyyy')||' 19:59:59' end_date from dual;
spool Logs\report_&curr_date;
prompt 1. Отчет Обработанные покупки за период с &1 по &2


select '"Дата","Наименование товара","Код товара","№ карты","ФИО клиента","Тип операции","Номер магазина","Количество","Номер чека","Стоимость товара с НДС","Сумма в кассу, руб","Сумма сертификатом, руб","Сумма скидки, руб","Скидка, %","Шкала клиента","Обяз по пер в сертификаты, руб","Баллы"' from dual;
--далее селект, который я по причинам секретности не привожу, но достаточно и одного
spool off;
exit;

--


Примечание:
Махмуд Отар-Мухтаров да похоже, но это все в винде, что то у меня даже one-line perl скрипта на эту тему не удалось написать, например
perl -p -e "s/\s*$/\n/;" report_2009_0724_18_1325.log > ttt.out
не помог, остаются пустые строки...

Примечание:
2Ja-Ja-Hey-Ho да, проверил работает, сейчас попробую на самом скрипте

Примечание:
мой результирующий скрипт

да проблема была с лишними определениями


set trimspool on linesize 8000 pagesize 0 feedback off echo off verify off
col sys_date new_value curr_date;
col start_date new_value str_date;
col end_date new_value nd_date;
col name_col new_value nm_col;
select to_char(sysdate,'yyyy_mmdd_hh24_miss')||'.log' sys_date from dual;
select to_char(to_date('&1','dd/mm/yyyy')-1,'dd/mm/yyyy')||' 20:00:00' start_date from dual;
select to_char(to_date('&2','dd/mm/yyyy')-1,'dd/mm/yyyy')||' 19:59:59' end_date from dual;
spool Logs\report_pokupki_&curr_date;
prompt 1. Отчет Обработанные покупки за период с &1 по &2
select '"Дата","Наименование товара","Код товара","№ карты","ФИО клиента","Тип операции","Номер магазина","Количество","Номер чека","Стоимость товара с НДС","Сумма в кассу, руб","Сумма сертификатом, руб","Сумма скидки, руб","Скидка, %","Шкала клиента","Обяз по пер в сертификаты, руб","Баллы"' from dual;
select
--пропущено
AND t17.txn_dt >= TO_DATE ('&str_date', 'DD/MM/YYYY HH24:MI:SS')
AND t17.txn_dt <= TO_DATE ('&nd_date', 'DD/MM/YYYY HH24:MI:SS');
--
spool off;
exit;
;
Ответы:
Мне кажется, что средствами sql+ вам не удастся это сделать. Придется пропустить output через какой-нибудь фильтр, типа trim на php или чего-то подобного на Delphi. Вы ведь все равно выводите не на экран, а в файл или стандартный input. Сделайте цепочку, в которую вставьте простенький фильтр, образающий пробелы справа.
только что проверил на таком скрипте:
---
set trimspool on linesize 8000
spool spool.txt
select * from dual;
spool off
exit
---
соотвественно в spool.txt все пробелы обрезаны. может быть как то влияют остальные опции ?


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.