Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вопрос по PL\SQL и не совсем / 5 сообщений из 5, страница 1 из 1
18.09.2002, 09:49
    #32051202
Um
Um
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по PL\SQL и не совсем
Из Си-шной функции вызывается процедура PL\SQL. Есть ли возможность в процессе работы процедуры возвращать в вызывающую функцию какие-то вычисленные значения?
Это нужно например для прогрессбара.
...
Рейтинг: 0 / 0
18.09.2002, 09:57
    #32051206
MW
MW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по PL\SQL и не совсем
Можно попробовать использовать PACKAGE. Описав в теле пакета глобальные переменные можно другой функцией из этого же PACKAGE их считывать. Применимо для одной сессии.
PS: Сам не пробовал. Это с чужих слов.
...
Рейтинг: 0 / 0
18.09.2002, 10:09
    #32051207
Um
Um
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по PL\SQL и не совсем
Да нет. Прикол в том, чтобы PL/SQL-ная процедура возвращала часть посчитанных данных в Си-шную функцию (из которой была вызвана) до своего окончания. Т.е. грубо говоря есть клиент, на нем запускается функция на СИ, эта функция запускает PL/SQL процедуру, которая обрабатывается на сервере. Управление программой вернется на клиента не раньше, чем выполнится процедура. Так вот, есть ли возможность передать с сервера промежуточные данные на клиента до окнчания процедуры?
...
Рейтинг: 0 / 0
18.09.2002, 10:35
    #32051217
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по PL\SQL и не совсем
На мой взгляд, иначе как созданией 2-й сесии не получится. Т.е. схема примерно такова: 1-я сессия чего-то делает и периодически "уведомляет" о своей работе через к примеру, pipes, или, если у тебя версия оракла 8.1 и больше, через заполнение некоей таблицы процедурой с pragma pragma autonomous_transaction - это чтобы не мешать основной транзакции. Ну клиент из 2-й сессии читает все это и перерисовывает прогресбар.

Еще 3-й вариант- складывать уведомления через utl_file, это только сейчас в голову пришло. Тогда вроде как 2-я сессия не нужна.
...
Рейтинг: 0 / 0
18.09.2002, 14:05
    #32051309
MW
MW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по PL\SQL и не совсем
2 Um

А в чем дело? Загоняешь свою здоровую процедуру в fork или thread (смотря под чем пишешь) тогда управление вернется в программу, кроме того что она что-то твое делает заставить менять ее глобальные переменные. Вызоваешь в цикле другую функцию считывающую эти глобальные переменные и показываешь то что хочешь.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вопрос по PL\SQL и не совсем / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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