【问题标题】:Scope of Oracle package level variablesOracle 包级变量的范围
【发布时间】:2011-01-23 21:26:59
【问题描述】:

给定以下 Oracle (10g) 包定义:

create or replace PACKAGE "foo"
AS

   bar VARCHAR2(32000) := NULL;

END;

什么是范围吧?每个会话都有自己的 foo.bar,还是跨会话的 foo.bar 是全局的?

你能从参考文件中引用我的章节吗?

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    此变量可以包含跨多个会话的不同值。如果您想更改此设置,请使用 PRAGMA_SERIALLY_REUSABLE。

    【讨论】:

      【解决方案2】:

      范围在会话级别。请参阅PL/SQL User's Guide and Reference 中“添加的功能”标题下的第一句

      【讨论】:

      • 你可以通过设置来改变这个行为:PRAGMA SERIALLY_REUSABLE;
      • 你不是想说全局变量可以跨会话使用,是吗?以下是 PRAGMA_SERIALLY_REUSABLE 的 Oracle Application Developers Guide 中的描述:download.oracle.com/docs/cd/B14117_01/appdev.101/b10795/…
      • 对不起,像往常一样,不清楚。它将包 var 的范围从会话更改为工作单元。本质上禁用了变量的可重用性
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多