A partir de la versión 5.0 de APEX, se creo un nuevo contexto de aplicación: APEX$SESSION, el cual almacena nombre de usuario, identificador de sesión e identificador de espacio de trabajo. Esta información se puede utilizar para filtrar información, al igual que lo hacemos por ejemplo con la función V, sin embargo, el uso de este contexto ejecuta las consultas mucho más rápido que la función V.

APEX define el contexto APEX$SESSION cuando comienza a procesar una solicitud entrante. Por ejemplo, puede utilizar cualquiera de sus tres valores para filtrar consultas y para políticas de VPD (Bases de datos Vituales Privadas) que protegen sus datos en tablas.

Como se mencionó, este contexto «guarda» tres valores diferentes: APP_SESSION, APP_USER y WORKSPACE_ID. A continuación tres ejemplos de posibles usos de estos valores, utilizando cada uno de estos valores del contexto.

SELECT … WHERE apex_session_id = SYS_CONTEXT(‘APEX$SESSION’, ‘APP_SESSION’)

SELECT … WHERE username = SYS_CONTEXT(‘APEX$SESSION’, ‘APP_USER’)

SELECT … WHERE workspace_id = SYS_CONTEXT(‘APEX$SESSION’, ‘WORKSPACE_ID’)

Puede leer sobre las diferencias de rendimiento con respecto a la función V en el post de Srihari Ravva «Oracle APEX SYS_CONTEXT vs V Function«

Share This