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

Можно ли узнать откуда вызвана операция через PLPCALL ?
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 Smile
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Окт 13, 2015 11:05    Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
PS:щас обед... приду - подумаю, самому надо.

ничего не придумал, кроме:

Alkov пишет:
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).


Может, закажете у ЦФТ доработку? Wink
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеСр Окт 14, 2015 02:13    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Пусть конкретизирует задачу... я ж мысли не читаю...
Да и про vbs скрипт ни буковки не было...


Написано же через PLPCALL.
такой вызов в стэк не помещается.
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеСр Окт 14, 2015 02:20    Ответить с цитатой
Полезность: Нет оценки
maestro пишет:
Ну тогда что-то вроде v$active_session_history Smile

В эту под 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 пишет:
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).


Может, закажете у ЦФТ доработку? Wink[/quote]

Типа сделайте стэк под PLPCALL вызова доступным из админа словаря ?
Ну если только посмотреть на кучу нулей в счёте... Very Happy
Бизнес не убедишь оплатить такое, если можно сделать через костыли что в начале писал...
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеСр Окт 14, 2015 06:50    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Можно ли узнать откуда вызвана операция через PLPCALL ?

nav.current_form_method_id, если я не ошибаюсь. Проверять лень Smile
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеСр Окт 14, 2015 09:50    Ответить с цитатой
Полезность: Нет оценки
Random пишет:
Цитата:
Можно ли узнать откуда вызвана операция через PLPCALL ?

nav.current_form_method_id, если я не ошибаюсь. Проверять лень Smile



Ну да, что то такое есть, похоже на правду

Код:

   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, если я не ошибаюсь. Проверять лень Smile


там тоже через стэк вызовов
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеЧт Окт 15, 2015 15:45    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
Random пишет:
Цитата:
Можно ли узнать откуда вызвана операция через PLPCALL ?

nav.current_form_method_id, если я не ошибаюсь. Проверять лень Smile


там тоже через стэк вызовов

ясно Sad
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеЧт Окт 15, 2015 15:50   Re: Можно ли узнать откуда вызвана операция через PLPCALL ? Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
Здравствуйте!

Сабж.
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
Чисто теоретически навигатор же где-то это отслеживает...


Может что нибудь напишешь про первоначальную постановку задачи. ...
Если разовая необходимость. ...чем контекст юзера плох?


....и еще....то что nav.current_form_method_id через стэк работает, как определил?

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

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