2010-03-04 5 views
23

Étant donné la définition suivante du package Oracle (10g):Portée des variables au niveau du package Oracle

create or replace PACKAGE "foo" 
AS 

    bar VARCHAR2(32000) := NULL; 

END; 

quelle est la portée de la barre? Chaque session a-t-elle son propre foo.bar, ou est-ce que foo.bar est global entre les sessions? Pouvez-vous me citer le chapitre et le verset d'un document de référence?

Répondre

22

La portée est au niveau de la session. Voir la première phrase sous la rubrique "Fonctionnalité ajoutée" dans le PL/SQL User's Guide and Reference

+1

Vous pouvez modifier ce comportement en définissant: PRAGMA SERIALLY_REUSABLE; –

+1

Vous n'essayez pas de dire que les globals sont disponibles entre les sessions, n'est-ce pas? Voici une description du Guide des développeurs d'applications Oracle de PRAGMA_SERIALLY_REUSABLE: http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10795/adfns_pc.htm#1008314 – DCookie

+2

Désolé, comme d'habitude, n'était pas clair. Il change la portée du paquet var de la session à l'unité de travail. Essentiellement désactiver la réutilisabilité de la variable –

1

Cette variable peut contenir différentes valeurs sur plusieurs sessions. Si vous voulez changer cela, veuillez utiliser PRAGMA_SERIALLY_REUSABLE.

Questions connexes