Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Вт Окт 13, 2015 03:19  Можно ли узнать откуда вызвана операция через PLPCALL ? |
|
Полезность: Нет оценки
|
Здравствуйте!
Сабж.
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
Чисто теоретически навигатор же где-то это отслеживает... |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Вт Окт 13, 2015 09:25   |
|
Полезность: Нет оценки
|
Я бы начал поиски со стэка вызовов
....
вот тебе примерчик...
Код: |
if instr(dbms_utility.format_call_stack,'GASH_SOPHIT') <> 0 then
V_PROV_DOCS := false;
end if;
|
Должно получится ... |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Окт 13, 2015 09:30   |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | Я бы начал поиски со стэка вызовов
|
Мимо.
Если правильно понял, речь идет о вызове из VBS-скрипта другой операции. В этом случае стек вызовов оракла не поможет ничем.
а чего пишется в v$session.ACTION при этом ?
Код: | select s.ACTION from v$session s |
т.е. там может быть ИД корневой операции.
PS:щас обед... приду - подумаю, самому надо. |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Вт Окт 13, 2015 09:34   |
|
Полезность: Нет оценки
|
Пусть конкретизирует задачу... я ж мысли не читаю...
Да и про vbs скрипт ни буковки не было... |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Вт Окт 13, 2015 10:11   |
|
Полезность: Нет оценки
|
Ну тогда что-то вроде v$active_session_history  |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Окт 13, 2015 11:05   |
|
Полезность: Нет оценки
|
Damir пишет: | PS:щас обед... приду - подумаю, самому надо. |
ничего не придумал, кроме:
Alkov пишет: | Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
|
Может, закажете у ЦФТ доработку?  |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 14, 2015 02:13   |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | Пусть конкретизирует задачу... я ж мысли не читаю...
Да и про vbs скрипт ни буковки не было... |
Написано же через PLPCALL.
такой вызов в стэк не помещается. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 14, 2015 02:20   |
|
Полезность: Нет оценки
|
maestro пишет: | Ну тогда что-то вроде v$active_session_history  |
В эту под IBS не пускает. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 14, 2015 02:37   |
|
Полезность: Нет оценки
|
а чего пишется в v$session.ACTION при этом ?
Код: | select s.ACTION from v$session s |
неа там id уже вызванной операции, да и не решит это проблему в случае цепочки plpcall вызовов
Последний раз редактировалось: Alkov (Ср Окт 14, 2015 02:41), всего редактировалось 1 раз |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 14, 2015 02:40   |
|
Полезность: Нет оценки
|
Alkov пишет: | Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
|
Может, закажете у ЦФТ доработку? [/quote]
Типа сделайте стэк под PLPCALL вызова доступным из админа словаря ?
Ну если только посмотреть на кучу нулей в счёте...
Бизнес не убедишь оплатить такое, если можно сделать через костыли что в начале писал... |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Окт 14, 2015 06:50   |
|
Полезность: Нет оценки
|
Цитата: | Можно ли узнать откуда вызвана операция через PLPCALL ? |
nav.current_form_method_id, если я не ошибаюсь. Проверять лень  |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Ср Окт 14, 2015 09:50   |
|
Полезность: Нет оценки
|
Random пишет: | Цитата: | Можно ли узнать откуда вызвана операция через PLPCALL ? |
nav.current_form_method_id, если я не ошибаюсь. Проверять лень  |
Ну да, что то такое есть, похоже на правду
Код: |
if nav.current_form_method_id = &method$ID then
if P_CURR is null then
pragma error('Ссылка на валюту(драг. метал) не указана.');
end if;
if P_COURSE is null then
pragma error('Не заполнено поле "Курс валюты"');
end if;
end if;
|
|
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 14, 2015 10:41   |
|
Полезность: Нет оценки
|
Random пишет: | Цитата: | Можно ли узнать откуда вызвана операция через PLPCALL ? |
nav.current_form_method_id, если я не ошибаюсь. Проверять лень  |
там тоже через стэк вызовов |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Окт 15, 2015 15:45   |
|
Полезность: Нет оценки
|
Alkov пишет: | Random пишет: | Цитата: | Можно ли узнать откуда вызвана операция через PLPCALL ? |
nav.current_form_method_id, если я не ошибаюсь. Проверять лень  |
там тоже через стэк вызовов |
ясно  |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Чт Окт 15, 2015 15:50  Re: Можно ли узнать откуда вызвана операция через PLPCALL ? |
|
Полезность: Нет оценки
|
Alkov пишет: | Здравствуйте!
Сабж.
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
Чисто теоретически навигатор же где-то это отслеживает... |
Может что нибудь напишешь про первоначальную постановку задачи. ...
Если разовая необходимость. ...чем контекст юзера плох?
....и еще....то что nav.current_form_method_id через стэк работает, как определил?
В АСД не нашел реализации функции |
|
 |
|