منبع اصلی نوشتار زیر در این لینک قرار دارد

بدست آوردن اطلاعاتی از جلسه جاری در اوراکل

تابع Sys_Context برای بدست آوردن اطلاعانی از پایگاه داده اوراکل استفاده می شود. ساختار کلی آن به شکل زیر است که در آن :namespace : یک namespace اوراکل است که در حال حاضر وجود دارد. اگر USERENV namespace استفاده شده باشد اطلاعاتی از پارامتر های session جاری را نشان می دهد. مانند نام پایگاه داده فعلی که به آن متصل شده اید یا فرمت تاریخ استفاده شده در session جاری.

(sys_context( namespace, parameter, [ length

برای بدست آوردن اطلاعات از جلسه جاری می توان از شکل کلی زیر استفاده نمود. برای این از USERENV namespace استفاده کردیم چون می خواهیم اطلاعات از session جاری را بدست آوریم.

;    select sys_context( namespace, parameter, [ length ] ) from dual

می توانید این تابع را نیز بصورت فرمت اول در PL/SQL ها نیز استفاده کنید. تابع دارای پارامتر های بسیاری است که نسبت به نسخه استفاده شده اوراکل (10g,9i و 11g) وجود دارند. می توانید فهرست کامل به همراه توضیحات آنرا sys_contextدانلود کنید. در ادامه چندین مثال گفته می شود.

برای بدست آورن شماره جلسه فعلی از دستور زیر استفاده کنید.

;select sys_context(‘userenv’,\’sessionid’) from dual

برای بدست آوردن اطلاعات کاربر مالک جلسه (کاربری که از جلسه استفاده می کند) می توان از پارامتر های session_user و session_userid از دستور های زیر استفاده کنید.

;select sys_context(‘userenv’,\’session_user’) from dual

;select sys_context(‘userenv’,\’session_userid’) from dual

همچنین برای بدست آوردن کاربر سیستم عامل که دستور هایی مانند sqlplus برای اتصال به پایگاه داده را استفاده می کند از پارامتر os_user استفاده کنید.

;select sys_context(‘userenv’,\’os_user’) from dual

یا برای بدست آوردن ترمینال (خط فرمان) مورد استفاده کاربر سیستم عامل برای اجرای دستور هایی مانند sqlplus از پارامتر terminal استفاده کنید.

;select sys_context(‘userenv’,\’terminal’) from dual

برای بدست آوردن فرمت های تاریخ از پارامتر nls_date_format استفاده کنید.

;select sys_context(‘userenv’,”nls_date_format’) from dual

البته استفاده بیشتر این تابع یا هر تابع درونی دیگر اوراکل برای استفاده در PL/SQL است. مدیران می توانند از ویوهایی مانند v$session و user_users برای بدست آوردن اطلاعاتی از جلسات و کاربر فعلی استفاده کنند.



برچسب ها : , , , ,