powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение значения item внутри базы по id сессии
5 сообщений из 5, страница 1 из 1
Получение значения item внутри базы по id сессии
    #38729274
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Столкнулся с проблемой. В определенной сессии есть значение item. Его нужно получить внутри базы простым способом.
Сложный способ выглядит так:
Код: sql
1.
select * from APEX_040200.WWV_FLOW_DATA q where 1=1 and item_name = 'P14_STATUS' and flow_instance = '10546679564453'


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

Знает кто-нибудь?
...
Рейтинг: 0 / 0
Получение значения item внутри базы по id сессии
    #38736393
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
create or replace procedure copy_apex_session_env
  ( p_session_id apex_workspace_sessions.apex_session_id%type
  , p_app_id apex_applications.application_id%type )
as
  l_session apex_workspace_sessions%rowtype;
  l_app_id apex_applications.application_id%type;
  vc_arr OWA.vc_arr;
begin    
  vc_arr(1) := 'TEST';
  OWA.init_cgi_env(vc_arr);
    
  begin
    select * into l_session
      from apex_workspace_sessions s
     where apex_session_id = p_session_id;
  exception
    when no_data_found then
      raise_application_error(-20001, 'Invalid Session ID!');
  end;

  begin
    select application_id into l_app_id
      from apex_applications
     where application_id = p_app_id
       and workspace_id = l_session.workspace_id;
  exception
    when no_data_found then
      raise_application_error(-20002, 'Invalid Application ID!');
  end;
  
  wwv_flow_api.set_security_group_id(
    wwv_flow_application_install.get_workspace_id()
  );
  
  apex_custom_auth.login(
      p_uname => 'nobody',
      p_password => '',
      p_session_id => l_session.apex_session_id,
      p_app_page => l_app_id,
      p_entry_point => null,
      p_preserve_case => null
  );
      
  apex_custom_auth.set_session_id(p_session_id => l_session.apex_session_id);
  apex_custom_auth.set_user(l_session.user_name);
  apex_application.g_flow_id := l_app_id;
end;
...
Рейтинг: 0 / 0
Получение значения item внутри базы по id сессии
    #38736395
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри за простыню в предыдущем топике, редактировать сообщения не могу...
...
Рейтинг: 0 / 0
Получение значения item внутри базы по id сессии
    #38736436
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не подойдет, только коллекции данной сессии видно.

либо, если установить сначало значение, а потом читать. из-за логина под nobody походу теряется инфа.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
begin
  copy_apex_session_env(5963517419926852, 810);
  apex_util.set_session_state('P35_TEST', 'vvv');
end;

/

select v('P35_TEST') from dual t
...
Рейтинг: 0 / 0
Получение значения item внутри базы по id сессии
    #38736725
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

Документированной возможности нет.
Реализация аутентификации в апексе постоянно переписывается и зависит от версии и патча.

Как вариант для 4.2, STFG "fetch_into_substitution_cache"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение значения item внутри базы по id сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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