Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / CLOB и Oracle Forms 6i / 14 сообщений из 14, страница 1 из 1
15.03.2006, 10:30
    #33601412
vava04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Господа!
Никто не поможет?
Есть базовая функция возвращаюшая CLOB.
Задача - вызвать из Forms-ов и результат функции записать в файл. Размер CLOB может быть до 20M.

Спасибо.
...
Рейтинг: 0 / 0
15.03.2006, 10:46
    #33601479
FRM-42100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Мне кажется, тут больше подойдет Reports.
...
Рейтинг: 0 / 0
15.03.2006, 10:59
    #33601528
Trooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
такой функции нет. Имеется ввиду одной функции (стандартной).
...
Рейтинг: 0 / 0
15.03.2006, 11:15
    #33601586
Sqaimes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
а как насчет TEXT_IO?
...
Рейтинг: 0 / 0
15.03.2006, 11:16
    #33601591
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
А можно по-подробнее о задаче? У тебя есть собственная функция на сервере, которая возвращает CLOB. Надо результат записать в файл на клиенте. Есть Forms. Если так, то предлагаю такой вариант. На сервере создаешь функцию, которая читает часть твоего CLOB (DBMS_LOB.SUBSTR) и возвращает ее как строку. Эту строку записываешь с помощью методов File I/O в файл. В цикле выполняешь операцию, пока не считаешь весь CLOB. Так как тип LOB - строковый, то проблем с типами файлов не должно быть.
...
Рейтинг: 0 / 0
15.03.2006, 11:19
    #33601608
vava04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Дело в том, что даже при выполнении триггера с текстом типа:
declare
v# clob;
begin

v#:=FunctionReturnClob(...);

end;

Формсы падают... :(
...
Рейтинг: 0 / 0
15.03.2006, 11:24
    #33601633
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Вот поэтому всю обработку перенеси на сервер. А в Forms возвращай Varchar2 - часть CLOB. Что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
myPack.Read_CLOB;

While NOT myPack.CLOB_End Loop
  l_CLOB_Part := myPack.Get_CLOB_Part;
  Операции_File_IO;
End loop;
...
Рейтинг: 0 / 0
15.03.2006, 11:28
    #33601651
Sqaimes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Что касается TEXT_IO (как делается):
Для записи в файл :
1.Объявить переменную управления файлом (file handle), которая будет служить указателем на файл для последующих обращений к процедуре TEXT_IO, чтобы манипулировать содержимым файла.
2.Открыть файл, вызвав FOPEN. Файл можно открыть для замены или для добавления текста.
3.Записать данные в файл, используя для этого процедуры PUT, PUTF или PUT_LINE.
4.Закрыть файл, вызвав FCLOSE.
...
Рейтинг: 0 / 0
15.03.2006, 11:28
    #33601654
vava04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Получается, что функцию, которая возвращает clob надо вызывать столько же раз, сколько раз я буду доставать из нее varchar2?
...
Рейтинг: 0 / 0
15.03.2006, 11:30
    #33601663
vava04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
SqaimesЧто касается TEXT_IO (как делается):
Для записи в файл :
1.Объявить переменную управления файлом (file handle), которая будет служить указателем на файл для последующих обращений к процедуре TEXT_IO, чтобы манипулировать содержимым файла.
2.Открыть файл, вызвав FOPEN. Файл можно открыть для замены или для добавления текста.
3.Записать данные в файл, используя для этого процедуры PUT, PUTF или PUT_LINE.
4.Закрыть файл, вызвав FCLOSE.

Как пользовать TEXT_IO я в курсе. Проблема не в этом.
...
Рейтинг: 0 / 0
15.03.2006, 11:32
    #33601671
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
vava04Получается, что функцию, которая возвращает clob надо вызывать столько же раз, сколько раз я буду доставать из нее varchar2?Да зачем! Вызывай один раз, сохрани CLOB в переменную пакета, а потом читай из переменной пакета ее части. И все...
...
Рейтинг: 0 / 0
15.03.2006, 11:33
    #33601680
vava04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Tolmachov Dmitiry vava04Получается, что функцию, которая возвращает clob надо вызывать столько же раз, сколько раз я буду доставать из нее varchar2?Да зачем! Вызывай один раз, сохрани CLOB в переменную пакета, а потом читай из переменной пакета ее части. И все...

ок
пробую
...
Рейтинг: 0 / 0
15.03.2006, 11:34
    #33601682
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Тем более, что для чтения нужен всего лишь локатор CLOB, а не сам CLOB.
...
Рейтинг: 0 / 0
15.03.2006, 11:46
    #33601742
Trooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CLOB и Oracle Forms 6i
Sqaimesа как насчет TEXT_IO?

я думал, что функция нужна в одном лице: получение CLOB и сохранение в файл. Вообще можно самому написать по получению CLOB это не сложон, типа указываешь таблицу, столбец и услвоия определения строки на вход, а она тебе CLOB или BLOB. А сохранить то не сложно.
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / CLOB и Oracle Forms 6i / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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