oracle – PLSQL:如何声明会话变量?

oracle – PLSQL:如何声明会话变量?,第1张

概述如何在PL / SQL中声明一个会话变量 – 只会在会话期间持续一个会话变量,而不必将它存储在数据库本身中? 您可以使用“用户创建的上下文”来存储会话中多个单元共享的数据. 首先,创建一个上下文: CREATE CONTEXT SYS_CONTEXT ('userenv', 'current_schema')|| '_ctx' USING PKG_COMMON 其次,创建一个可以管理您的上下文的包 如何在PL / sql中声明一个会话变量 – 只会在会话期间持续一个会话变量,而不必将它存储在数据库本身中? 您可以使用“用户创建的上下文”来存储会话中多个单元共享的数据.

首先,创建一个上下文:

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:如何声明会话变量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存