14 нояб. 2012 г.

Oracle. Список значений контекста сессии

Иногда возникает задача получения значений всех переменных контекста - например, если имя переменной заранее не известно.

Путем беглого гугления был обнаружен и допилен небольшой скрипт:


DECLARE
   t_list DBMS_SESSION.AppCtxTabTyp;
   l_size NUMBER;
   i PLS_INTEGER;
BEGIN
   DBMS_SESSION.List_Context (t_list, l_size);
   i := t_list.FIRST; 
   LOOP
      EXIT WHEN i IS NULL;
          DBMS_OUTPUT.Put_Line (
             t_list(i).namespace || '.' ||
             t_list(i).attribute || ' = ' ||
             t_list(i).value);
      i := t_list.NEXT(i);
   END LOOP; 
   DBMS_OUTPUT.Put_Line('DBMS_SESSION.List_Context COUNT = '||l_size);
END;
/


via, via

Комментариев нет: