我创建了一个包ERP_CONTEXT,然后在包里定义一个过程set_context
procedure set_context(name in varchar2,value in varchar2) is
begin
dbms_session.set_context(NameSpace,name,value);
end set_app_context;但是在我调用的时候,提示我权限不够,我在网上也查了,很多,用什么方法都不行,请高手指教
procedure set_context(name in varchar2,value in varchar2) is
begin
dbms_session.set_context(NameSpace,name,value);
end set_app_context;但是在我调用的时候,提示我权限不够,我在网上也查了,很多,用什么方法都不行,请高手指教
CREATE PROCEDURE my_test
AS
BEGIN
DBMS_SESSION.set_context ('MYCTX', 'VALUE1', 'HELLO WERLD');
END;create or replace context myctx using my_test;grant execute on my_test to test;exec my_test;select sys_context('MYCTX','VALUE1') from dual;SYS_CONTEXT('MYCTX','VALUE1')
-----------------------------------------
HELLO WERLD
CREATE OR REPLACE PROCEDURE my_test(p_name in varchar2,p_value in varchar2)
AS
lv_id varchar2(20);
BEGIN
lv_id :='aaa';
DBMS_SESSION.set_context(lv_id, p_name, p_value);
END;
如果我在创建过程的时候,是传入参数调用的DBMS_SESSION.set_context.不管怎么样,还是会提示权限不足,希望高手来指点,谢谢了
create or replace procedure aaa(vapplue IN VARCHAR2)
as
begin
context.app_context(Context.mkt,vapplue);
end aaa;创建包头
create or replace package Context is
NameSpace constant varchar2(3) := 'ses';
mkt constant varchar2(3) := 'mem';
procedure app_context(p_name in varchar2,p_value in varchar2);
end Context;创建包体
create or replace package body Context is
procedure app_context(p_name in varchar2,p_value in varchar2) is
begin
dbms_session.set_context(NameSpace,p_name,p_value);
end app_context;
end Context ;在我调用过程aaa的时候,始终无法调用dbms_session.set_context,提示权限不够,请高手指教,谢谢
create or replace context ses using context;