2010-03-04 10 views
23

Dada la siguiente Oracle (10g) de definición del paquete:Ámbito de Oracle variables de nivel de paquete de

create or replace PACKAGE "foo" 
AS 

    bar VARCHAR2(32000) := NULL; 

END; 

cuál es el alcance de la barra? ¿Cada sesión obtiene su propia foo.bar, o es foo.bar global en todas las sesiones?

¿Puede citarme un capítulo y un versículo de un documento de referencia?

Respuesta

22

El alcance está en el nivel de la sesión. Consulte la primera oración bajo el título "Funcionalidad agregada" en el PL/SQL User's Guide and Reference

+1

Puede cambiar este comportamiento configurando: PRAGMA SERIALLY_REUSABLE; –

+1

No intenta decir que los globales están disponibles en todas las sesiones, ¿verdad? Aquí hay una descripción de Oracle Application Developers Guide de PRAGMA_SERIALLY_REUSABLE: http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10795/adfns_pc.htm#1008314 – DCookie

+2

Lo sentimos, como de costumbre, no estaba claro. Cambia el alcance del paquete var de la sesión a la unidad de trabajo. Deshabilitar esencialmente la reutilización de la variable –

1

Esta variable puede contener diferentes valores en varias sesiones. Si desea cambiar esto, use PRAGMA_SERIALLY_REUSABLE.

Cuestiones relacionadas