Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> DBMS_SESSION.set_context
Dear oracle users,
I try to create an application context to be used with an security policy. The select in the below database package works, but the context does not get set. Any idea why this could be?
Also, when I run
exec dbms_session.set_context('carambaContext', 'datamangerID', 2) by
itself, I get the following error message:
*
FEHLER in Zeile 1:
ORA-01031: Unzureichende Berechtigungen ORA-06512: in "SYS.DBMS_SESSION", Zeile 78 ORA-06512: in Zeile 1
The context creation is as following:
CREATE CONTEXT xxxContext USING xxx.dmContextPack;
CREATE OR REPLACE PACKAGE dmContextPack as
PROCEDURE setDatamanagerID;
PROCEDURE showContext (context_name VARCHAR2, context_attribute
VARCHAR2);
END dmContextPack;
CREATE OR REPLACE PACKAGE BODY dmContextPack IS
PROCEDURE setDatamanagerID IS
datamanID NUMBER;
BEGIN
select id into datamanID from xxx_datamanager where upper(dm_user) = SYS_CONTEXT('USERENV', 'session_user'); dbms_session.set_context('xxxContext', 'datamangerID', datamanID); DBMS_OUTPUT.PUT_LINE ('datamanID: ' || datamanID); DBMS_OUTPUT.PUT_LINE ('Attribute is set now:'); DBMS_OUTPUT.PUT_LINE ('datamanagerID: ' || SYS_CONTEXT('xxxContext','datamanagerID'));
EXCEPTION
WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('No data found'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('When others clause reached:'); DBMS_OUTPUT.PUT_LINE ('datamanID: ' || datamanID);
END setDatamanagerID;
PROCEDURE showContext (context_name VARCHAR2, context_attribute VARCHAR2) IS
BEGIN DBMS_OUTPUT.PUT_LINE (context_name || ' = ' || SYS_CONTEXT(context_name,context_attribute));
END showContext;
END dmContextPack; Received on Mon Mar 04 2002 - 09:58:51 CST
![]() |
![]() |