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; begin 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; apex_custom_auth.set_session_id(p_session_id => l_session.apex_session_id); apex_custom_auth.set_user(l_session.user_name); wwv_flow_api.set_security_group_id(l_session.workspace_id); apex_application.g_flow_id := l_app_id; end copy_apex_session_env; /
Она должна создаваться в схеме разбора приложения (без этого не сработает wwv_flow_api.set_security_group_id). Теперь, чтобы увидеть данные соответствующей коллекции, достаточно вызвать процедуру и выполнить запрос:
exec copy_apex_session_env(p_session_id => &session_id, p_app_id => &app_id); select * from apex_collections where collection_name = 'YOUR_COLLECTION_NAME';
Читать далее