首先,创建一个上下文:
CREATE CONTEXT SYS_CONTEXT ('userenv','current_schema')|| '_ctx' USING PKG_COMMON
其次,创建一个可以管理您的上下文的包:
CREATE OR REPLACE PACKAGE PKG_COMMONIS common_ctx_name CONSTANT VARCHAR2 (60) := SYS_CONTEXT ('userenv','current_schema') || '_ctx'; FUNCTION fcn_get_context_name RETURN VARCHAR2; PROCEDURE prc_set_context_value (var_name VARCHAR2,var_value NUMBER);END;CREATE OR REPLACE PACKAGE BODY PKG_COMMONIS FUNCTION fcn_get_context_name RETURN VARCHAR2 IS BEGIN RETURN common_ctx_name; END; PROCEDURE prc_set_context_value (var_name VARCHAR2,var_value NUMBER) IS BEGIN DBMS_SESSION.set_context (common_ctx_name,var_name,var_value); END;END;
prc_set_context_value可以更高级,这只是一个例子.
随着上下文和包创建,您可以开始使用它们.
使用过程调用设置上下文变量
begin PKG_COMMON.prc_set_context_value('MyVariable',9000)end;
并在任何地方使用任何程序,包,功能或事件视图.
CREATE VIEW V_TEST AS SELECT ID,LOGIN,name FROM USERS WHERE RolE_ID = SYS_CONTEXT(PKG_COMMON.FCN_GET_CONTEXT_name,'MyVariable')
有关更多信息,请参阅http://www.psoug.org/reference/sys_context.html
总结以上是内存溢出为你收集整理的oracle – PL / SQL:如何声明会话变量?全部内容,希望文章能够帮你解决oracle – PL / SQL:如何声明会话变量?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)