CftClub.ru
Клуб специалистов ЦФТ-Банк

Экспорт файлов на локал
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Авг 08, 2012 13:07    Ответить с цитатой
Полезность: 1
Architect пишет:
попробывал по-разному. ни ругается и ни копирует - никак не отвечает
есть к этой операции еще какие-то дополнительные требования?

посмотрите пример FNS_FILE.MAKE_CANCEL
Здесь один файл копируется 2 раза в разные папки - преобразуйте в копирование разных файлов, при необходимости можно оформить цикл
Код:
      &debug('Копирование файла ['||v_file_name||'] из ['||v_path||'] в ['||substr (V_OUT_PATH, 1, length (V_OUT_PATH)-1)||'] '||nvl(::[SYSTEM]%id,1)  ,0)
      ::[DOCUMENT].[COPYFILES].idx := 0;               
         ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[SRC_NAME] := v_file_name;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[SRC_PATH] := v_path;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[SRC_TYPE] := true;                 -- С сервера
         ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[SRC_DELETE] := false;               -- Потом удалить
       ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[DST_NAME] := v_file_name;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[DST_PATH] := V_OUT_PATH;
         ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[DST_TYPE] := not V_GNI_FILE_PLACE;    -- На клиента
       ::[DOCUMENT].[COPYFILES].tbl_F$L(1).[DST_DELETE] := false;
   
         ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[SRC_NAME] := v_file_name;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[SRC_PATH] := v_path;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[SRC_TYPE] := true;                 -- С сервера
         ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[SRC_DELETE] := true;               -- Потом удалить
       ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[DST_NAME] := v_file_name;
       ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[DST_PATH] := V_ARC_BOS;
         ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[DST_TYPE] := not V_GNI_FILE_PLACE;    -- На клиента
       ::[DOCUMENT].[COPYFILES].tbl_F$L(2).[DST_DELETE] := false;
   
       v_ret := '<% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %>';         
         stdio.put_line_buf(v_ret);
       v_ret := '<% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %>';         
         stdio.put_line_buf(v_ret);

У операции обязательно должен быть признак "Выводит команды в буфер сессии"
dumpino
Участник со стажем


Вступление в Клуб: 13.12.2011
СообщениеВт Окт 02, 2012 08:01    Ответить с цитатой
Полезность: Нет оценки
тоже столкнулся с этим вопросом, спасибо timochev, более наглядно будет выглядеть так:

Код:

if p_info = 'OK' then
      
         ::[DOCUMENT].[COPYFILES].idx := 0;
         
         for i in this.first..this.last loop
         
               ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[SRC_NAME] := this(i).[NAME_FILE];
                   ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[SRC_PATH] := V_FILE.[SRC_PATH];
                   ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[SRC_TYPE] := true;                 -- С сервера
                
                   ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[DST_NAME] := this(i).[NAME_FILE];
                   ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[DST_PATH] := V_FILE.[DST_PATH];
                 ::[DOCUMENT].[COPYFILES].tbl_F$L(i).[DST_TYPE] := false;    -- На клиента
                  
                  v_ret := '<% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %>';         
                 stdio.put_line_buf(v_ret);
                   
         end loop;         
             
end if;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru