Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Нач. пробелы при выводе текста put_line'ом через spool  [new]
Dist
Member

Откуда:
Сообщений: 5
Извините, пока не могу побороть проблему обрезания SQL*Plus начальных пробелов в строках выводимых в файл результата (через SPOOL) командой dbms_output.put_line()
Вот упрощенный пример скрипта:

SET SQLBLANKLINES on;
set head off feed off;
SET SERVEROUTPUT ON
SET ECHO OFF
SET FEEDBACK OFF
SET TIMING OFF
SET LINESIZE 2000
--SET TRIMSPOOL ON

spool qqq_.txt;
/
begin
dbms_output.put_line(' ' || '1234567');
end;
/
spool off;
set echo on;
exit SUCCESS COMMIT;

Вместо ожидаемого в файле qqq_.txt результата:
1234567
Выводится:
1234567

Если тоже самое выполнять в каком-нибудь визуальном средстве навроде TOAD или DB Artisan, то начальные пробелы - на месте.
Подскажите, плиз, какой такой SET или что-то ещё может помочь! Спасибо.
30 ноя 06, 12:09    [3471942]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Dist
Member

Откуда:
Сообщений: 5
Похоже в примере моего вопроса в строке dbms_output.put_line(' ' || '1234567'); при опубликовании "сожрались" знаки пробелов в первой части конкатенации...
Вопрос остаётся
30 ноя 06, 12:12    [3471971]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7126
Vadim Lejnin
Так лучше

Извините, пока не могу побороть проблему обрезания SQL*Plus начальных пробелов в строках выводимых в файл результата (через SPOOL) командой dbms_output.put_line()
Вот упрощенный пример скрипта:

SET SQLBLANKLINES on;
set head off feed off;          
SET SERVEROUTPUT ON             
SET ECHO OFF                    
SET FEEDBACK OFF                
SET TIMING OFF                  
SET LINESIZE 2000               
--SET TRIMSPOOL ON                
                                
spool qqq_.txt;
/
begin
  dbms_output.put_line('        ' || '1234567');
end;
/
spool off;                     
set echo on;
exit SUCCESS COMMIT;
Вместо ожидаемого в файле qqq_.txt результата:
       1234567
Выводится:
1234567

Если тоже самое выполнять в каком-нибудь визуальном средстве навроде TOAD или DB Artisan, то начальные пробелы - на месте.
Подскажите, плиз, какой такой SET или что-то ещё может помочь! Спасибо.
30 ноя 06, 12:14    [3471987]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Dist
Member

Откуда:
Сообщений: 5
... При опубликовании упорно исчезают пробелы - похоже на форуме та же проблема, что и у меня с SQL*Plus ))))))
Короче, в dbms_output.put_line я выожу пробелы перед строкой, а в файле результата, вместо ожидаемой строки: ПРОБЕЛЫ <текст>, выдаётся просто <текст>
30 ноя 06, 12:15    [3472005]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Dist
Member

Откуда:
Сообщений: 5
Vadim Lejnin
[quot Vadim Lejnin]Так лучше

Vadim Lejnin, спасибо за форматирование )))
Дык чего ж делать-то? Некрасиво как-то (дело в том, что таким способом генерится текст другого исполняемого PL/SQL скрипта, поэтому "исходник" выглядит не очень читаемо без нач. пробелов)
30 ноя 06, 12:17    [3472023]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Elic
Member

Откуда:
Сообщений: 29976
Vadim Lejnin
Извините, пока не могу побороть проблему обрезания SQL*Plus начальных пробелов в строках выводимых в файл результата (через SPOOL) командой dbms_output.put_line()
Подскажите, плиз, какой такой SET
RTFM SET SERVEROUT[PUT] ... FOR[MAT] WRA[PPED] (FAQ)
30 ноя 06, 12:20    [3472036]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
Dist
Member

Откуда:
Сообщений: 5
[quot Elic]
Elic, большое спасибо! Помогло! ))
30 ноя 06, 12:32    [3472153]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
Ребята, здравствуйте.
а у меня такая вот проблема. уж извините...
1. Есть TOAD
2. в тоад есть таблица:
CREATE TABLE DATA.SQLRU
(
  AAA  NUMBER(22),
  BBB  VARCHAR2(30 BYTE),
  CCC  VARCHAR2(30 BYTE))
3. есть скрипт
set linesize 32000;
set pagesize 0;
set recsep on;
set wrap on;
set TRUNCATED on;
SET COLSEP ';';
set HEADING  off;
set echo off

SET TRIMOUT ON;
set trimspool on


spool 'D:\temp\pomogite.txt'


SELECT AAA, BBB, CCC

      FROM EXT_DATA.SQLRU;

spool off;
exit;

4.есть неправильный результат:
      5454;я-дура                        ;а вы - профессионалы
1 row selected.

5. Мне нужно чтобы между значениями в результирующем файле не было пробелов.
RTRIM и SUBSTR опробованы в различных вариациях. Не помогло . Что посоветуете? нужно решение именно с использованием SPOOL.
21 ноя 11, 15:16    [11632481]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
dsad
Guest
May12,

SELECT AAA||';'||BBB||';'||CCC FROM EXT_DATA.SQLRU
21 ноя 11, 15:38    [11632643]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
спасибки. заработало. этот способ забылся. пойду йод пить.
21 ноя 11, 15:54    [11632800]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
как запретить вывод надписи
1 row selected.
?
21 ноя 11, 16:34    [11633156]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
May12
как запретить вывод надписи
1 row selected.
?

RTFM SET ...
21 ноя 11, 16:48    [11633307]     Ответить | Цитировать Сообщить модератору
 Re: Нач. пробелы при выводе текста put_line'ом через spool  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
pravednik,
thanx a lot
Для запрета вывода количества обработанных строк при spool:

SET FEEDBACK OFF;
21 ноя 11, 17:26    [11633675]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить