oracle声明number变量,oracle – PL / SQL:如何声明会话变量?

您可以使用“用户创建的上下文”来存储会话中多个单元共享的数据.

首先,创建一个上下文:

CREATE CONTEXT SYS_CONTEXT ('userenv','current_schema')|| '_ctx' USING PKG_COMMON

其次,创建一个可以管理您的上下文的包:

CREATE OR REPLACE PACKAGE PKG_COMMON

IS

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_COMMON

IS

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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值