Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выгрузка из clob в файл 
:(
    Опции темы
smolbars
Дата 13.10.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 13.10.2005

Репутация: нет
Всего: нет



Помогите пожалуста с выгрузкой из clob файл
Собственно выгружаю я из xml в текстовый файл но поскольку в pl/sql нет механизма выгрузки прямо в файл на платформе Oracle 9.2 приходится делать криво
Причем 1 скрипт работает без вопросов а в другом данных меньше но имеются километровой дины ветки так что через xmltype.getstringval работать нельзя.
я перегоняю из xmltype данные в clob и фигачу в файл.
Код

  declare 
  l_offset number; 
  temp_node clob; 
  temp varchar2(32000 byte); 
begin 
  l_offset := 1; -- указатель копирования в исходную позицию 
  while (l_offset < length(temp_node)) -- цикл копирования из clob в    
  --строку для записи в файл 
loop      
      -- (сделано для обхода ограничения oracle на работу с текстовыми 
      --файлами) 
  UTL_FILE.fclose(fname_handle);  -- переоткрыть файл 
  fname_handle := UTL_FILE.fopen('IMPDIR',fname,'a',32000);  -- и дописывать в 
   --конец 
  temp := dbms_lob.substr(temp_node,32000,l_offset); 
      -- записать ту часть которая влезает в размер строки (32000) с заданного 
      --места 
  temp := dbms_lob.substr(temp_node,32000 ,l_offset);           
  UTL_FILE.put_line(fname_handle,temp,true); 
  UTL_FILE.FFLUSH(fname_handle); 
  l_offset := l_offset + 32000;   -- сместить указатель на 32000      
end loop; 
end; 

все сделано как учит дядя Том
вот статья

а не работает - то есть выгружает только ровно до той троки которая в переменной типа clob длинная - и все
если место 32000 кусаю по 16000 то тоже не пашет - тогда выгружает в половину меньше строк
помогите чем сможете плз. Долблюсь 4е сутки а ни фига не помогает
P s делать на чем-то нормальном типа java невозможно по ряду причин
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.