معرفی و استفاده از APEX$SESSION

معرفی و استفاده از APEX$SESSION

اگر نیاز به اطلاعاتی درباره Session جاری خود دارید بد نیست نگاهی به APEX$SESSION بیاندازید. اوراکل اپکس APEX$SESSION را در نسخه  5 خود معرفی کرد. اطلاعات مربوط به نام کاربری ، شناسه Session و شناسه Workspace اطلاعاتی هستند که در APEX$SESSION ذخیره می شوند. از مقادیر ثبت شده در APEX$SESSION می توان مثلا برای فیلتر کردن اطلاعات استفاده کرد، دقیقا به همان شکل که از تابع V استفاده می کردید اما با این تفاوت که استفاده از APEX$SESSION  به مراتب سریعتر از عملکرد تابع V می باشد.

 

APEX هنگامی که پردازش یک درخواست ورودی را شروع می کند، APEX$SESSION را تعریف می کند. بنابراین از هر سه مقدار ذخیره شده در آن می توانید برای فیلتر کردن درخواست ها و یا برای اعمال سیاست های VPD استفاده کنید.

 

این سه مقدار ذخیره شده در APEX$SESSION برابر APP_SESSION ، APP_USER  و WORKSPACE_ID هستند. مثلا در کوئری های خود می توانید از SYS_CONTEXT (‘APEX $ SESSION’, ‘APP_USER’) برای گرفتن کاربر جاری استفاده کنید، به عنوان مثال:

(‘SELECT * FROM table_name WHERE username = SYS_CONTEXT (‘APEX$SESSION’, ‘APP_USER

و یا در تعریف Trigger ها برای گرفتن کاربر ثبت کننده یا کاربر تغییردهنده می توانید از APEX$SESSION استفاده نمایید:

;(new.created_by := coalesce(sys_context(‘APEX$SESSION’,’APP_USER’),user: