===== Das Oracle CONTEXT Object - Globale Werte in einer Session hinterlegen=====
Aufgaben: In einer Session soll über eine globale Variable in Views / PL/SQL Procedure etc. auf Eigenschaften zugegriffen werden.
===Rechte vergeben===
Als SYS User:
GRANT CREATE ANY CONTEXT TO GPI;
=== Context anlegen ===
CREATE or replace CONTEXT GPI_MON USING gpi.ADMIN_ENV;
Das Package um den Context zu setzen muss zu diesem Zeitpunkt noch nicht exisiteren
=== Context über Package setzen ==
Package anlegen
create or replace package admin_env
as
procedure setcontext;
end admin_env;
create or replace package body admin_env
as
procedure setcontext
is
begin
dbms_session.set_context (
namespace => 'gpi_mon',
attribute => 'username',
value => 'hugo');
end setcontext;
end admin_env;
=== Context über Package setzen ==
Setzen:
begin
ADMIN_ENV.setContext;
end;
/
Abfrage:
select sys_context('GPI_MON','USERNAME') from dual;
==== Quellen ====
SQL Doku => http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5002.htm#SQLRF01202
Beispiel => https://docs.oracle.com/cd/B28359_01/network.111/b28531/app_context.htm#CIHBCIHG