powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Лог FTP в CLOB?
21 сообщений из 21, страница 1 из 1
Лог FTP в CLOB?
    #39601030
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Поставил себе задачку получить FTP лог в CLOB переменную, чтобы потом сохранить в таблицу. Когда использую программное окно - то в DBMS весь листинг "разговора" отображается, хотя я его туда не отправлял, а вот если соединение с FTP запихнуть в хранимую процедуру, то как этот "разговор" собрать в CLOB(например) переменную, чтобы сохранить затем в таблицу? Такое возможно?
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39601042
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно всё. http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39601068
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вероятно, вызовом функции get_log_text пакета, который Вами используется для диалога с фтп-сервером
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39601073
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пакет использую FTP (Oracle 11g), покопал его, не нашел ничего похожего на получение лога... Может как-то буфер DBMS отлавливать? Если этот пакет туда пишет конечно из хранимых процедур.
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602429
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что-то никак не выходит собрать лог подключения... хотя бы в строку Varchar2.... Не уже ли никто не делал такого???
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602439
Не шире ли
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr_GrizzlyНе уже лиВсе делали, только х.шары запылились.
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602453
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказывается все было просто....

declare
v_Message DBMS_OUTPUT.CHARARR;
v_Status numeric:=20;

делаем подключение к ftp
делаем какие-то работы с ftp

dbms_output.get_lines(lines => v_Message,numlines => v_Status);

FOR linenum in 1..v_Status
LOOP
dbms_output.put_line(linenum||':'||v_Message(linenum));
end loop;

Вместо dbms_output.put_line подставляем CLOB. Вот только один момент остался не ясным, я указал количество строк 20. Это произвольное число, а как узнать какое действительно число строк появилось в буфере dbms_output ?
Конечно же, после вызова процедуры - туда запишется реальное количество строк(но не более 20 в моем случае), которое вернула процедура. Тогда логичный вопрос - а как же все данные получить гарантированно?
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602458
Dr_GrizzlyОказывается остается радоваться, что ты не хирург.
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602714
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно хорошо что не хирург, но радоваться рано...

Запихнул код в процедуру, вызываю эту процедуру из приложения, а в логе пусто...... Соединение прошло, отключилось, а в логе пусто.... Получается что пакет dbms_output - только для визуального отображения из под Oracle? Или я что-то не догоняю?
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602721
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_GrizzlyИли я что-то не догоняю?Ты скромничаешь.
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602881
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, я за все это время на форуме я вижу только троллинг вместо нормальной помощи.... я с оракл второй месяц знаком, и пытаюсь понять что от куда растет, а ответа нормального никто не дал... Такое ощущение что модератор тут умер... и вы накинулись....

Я еще раз прошу помочь мне разобраться с этим логированием FTP. Если трудно сказать как - то хотя бы скажите где копать...
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602882
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
create or replace procedure UP_SendFTPFile(mess out varchar2) is
  l_conn      UTL_TCP.connection;
  txt_ftp_log VARCHAR2(1000);
  exc_ftp_err EXCEPTION;
  cLog      Clob; --лог ftp
  kolToSend Numeric; --количество файлов для отправки
  -- для Сбора лога FTP:
  v_Message DBMS_OUTPUT.CHARARR;
  v_Status  numeric := 32767;
begin
  -- выберем данные для отправки
  Select count(rn)
    into kolToSend
    from UT_FILEFTPSEND_PREP
   where STATUSSEND <> 'Отправлен';

  if kolToSend > 0 then
    begin
      cLog := 'Начало подключения' || chr(13);
    
      l_conn := ftp.login('******.ru',
                          '21',
                          '***********',
                          '***********',
                          60); --  60 сек тайм-аут подключения
      For curs in (Select *
                     from UT_FILEFTPSEND_PREP
                    where STATUSSEND <> 'Отправлен'
                      and rn in (164, 165, 166)) loop
        --для теста только три файла
        -- если записей нет, то цикл прекратится
        begin
          v_Status:=32767;
          dbms_output.get_lines(lines => v_Message, numlines => v_Status);
        
          ftp.ascii(p_conn => l_conn);
          ftp.put_remote_ascii_data(p_conn => l_conn,
                                    p_data => curs.filedata,
                                    p_file => 'Outbox\' || curs.filename);
          ftp.get_reply(l_conn); --ожидаем ответ от сервера 
        
          FOR linenum in 1 .. v_Status LOOP
            cLog := cLog || v_Message(linenum) || chr(13);
          end loop;
        
          update UT_FILEFTPSEND_PREP
             set STATUSSEND   = 'Отправлен',
                 CFTP_LOG     = cLog,
                 senddatatime = sysdate
           where RN = curs.rn;
          commit WORK; --обновляем таблицу снимая блокировку с записи
        
        exception
          WHEN OTHERS THEN
            BEGIN
              cLog := null;
              v_Status:=32767;
              dbms_output.get_lines(lines    => v_Message,
                                    numlines => v_Status);
              FOR linenum in 1 .. v_Status LOOP
                cLog := cLog || v_Message(linenum);
              end loop;
            
              update UT_FILEFTPSEND_PREP
                 set STATUSSEND   = 'Ошибка',
                     CFTP_LOG     = cLog,
                     senddatatime = sysdate
               where RN = curs.rn;
              commit WORK; --обновляем таблицу снимая блокировку с записи
            end;
        end;
      end loop;
    
      ftp.logout(l_conn);
      cLog := null;
      v_Status:=32767;
      dbms_output.get_lines(lines => v_Message, numlines => v_Status);
      FOR linenum in 1 .. v_Status LOOP
        cLog := cLog || v_Message(linenum) || chr(13);
      end loop;
      mess := 'Отправлено';
    
    exception
      WHEN OTHERS THEN
        BEGIN
          ftp.logout(l_conn);
          txt_ftp_log := 'Не удалось подключится к FTP';
          v_Status:=32767;
          dbms_output.get_lines(lines => v_Message, numlines => v_Status);
          FOR linenum in 1 .. v_Status LOOP
            cLog := cLog || v_Message(linenum);
          end loop;
          mess := 'Ошибка какая-то';
        END;
      
    end;
  else
    mess := 'Нет данных для отправки: ' || kolToSend;
  end if; -- если kolToSend 0   

end;
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602895
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_Grizzlyвызываю эту процедуру из приложения, а в логе пусто....
и куда записывется переменная cLog ?

ЗыЖ да и говонокода много
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602897
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
update UT_FILEFTPSEND_PREP
              set STATUSSEND   = 'Ошибка',
                   CFTP_LOG     = cLog,
                    senddatatime = sysdate
              where RN = curs.rn;


Пишу в таблицу, в строку, которую обрабатываю в данный момент.

В коде есть мусор, т.к это "горячий код", который на ходу правлю и ищу ответ на свой вопрос
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602900
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прикол в том, что если этот код просто скопировать в "Тестовое окно" и выполнить - то в cLog есть данные.... и они попадают в таблицу, а вот из процедуры она пустая...
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602907
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_GrizzlyБлин, я за все это время на форуме я вижу только троллинг вместо нормальной помощи....
Нормальная помощь была во втором посте (первом ответе) от Elic

Какая еще помощь от форума Вам нужна - совершенно не понятно. А пока вопрос задан таким образом, только и остается что троллить.
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602909
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_GrizzlyПрикол в том, что если этот код просто скопировать в "Тестовое окно" и выполнить - то в cLog есть данные.... и они попадают в таблицу, а вот из процедуры она пустая...Потому что dbms_output предназначен вовсе не для того, для чего ты его используешь, и, к тому же, обладает состоянием "Включено"/"Выключено".
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602941
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicDr_GrizzlyПрикол в том, что если этот код просто скопировать в "Тестовое окно" и выполнить - то в cLog есть данные.... и они попадают в таблицу, а вот из процедуры она пустая...Потому что dbms_output предназначен вовсе не для того, для чего ты его используешь, и, к тому же, обладает состоянием "Включено"/"Выключено".

Наконец то, ответ на мой вопрос! Dbms_output.enable; и все заработало. Благодарю!
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602948
Dr_Grizzly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123ййDr_Grizzlyвызываю эту процедуру из приложения, а в логе пусто....
и куда записывется переменная cLog ?

ЗыЖ да и говонокода много

Т.к начинающий в этом деле, сгораю от любопытства - что имеется в виду под термином "говонокода " касаемо моей процедуры?
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39602966
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_GrizzlyНаконец то, ответ на мой вопрос! Dbms_output.enable; и все заработало. Благодарю!Это граната в зубы обезьяны :|
...
Рейтинг: 0 / 0
Лог FTP в CLOB?
    #39603925
Обезьяна2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicDr_GrizzlyНаконец то, ответ на мой вопрос! Dbms_output.enable; и все заработало. Благодарю!Это граната в зубы обезьяны :|

Почему?
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Лог FTP в CLOB?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]