Identificazione delle differenze tra procedure locali e globali
Quando si crea una procedura in un oggetto, la procedura è globale per impostazione predefinita. Ciò significa che altri oggetti possono accedere a questa procedura. Le eventuali estensioni che dipendono dall'estensione creata accedono a procedure che sono pubbliche.
procedure MyFunction()
begin
// Logic goes here
end;
In alternativa, è possibile rendere la procedura locale, interna o protetta. Quando una procedura è locale, è possibile accedervi solo dall'interno dello stesso oggetto. Per creare una procedura locale, è necessario specificare la parola chiave local.
local procedure MyFunction()
begin
// Logic goes here
end;
Quando una procedura è interna, è possibile accedervi solo dall'interno della stessa estensione. Altri oggetti nella stessa estensione possono quindi accedere a questa procedura. Per creare una procedura interna, è necessario specificare la parola chiave internal.
internal procedure MyFunction()
begin
// Logic goes here
end;
Quando una procedura è protetta, è possibile accedervi solo dall'interno dell'oggetto di definizione e dell'oggetto host. Pertanto, se si crea una procedura in una tabella, le estensioni della tabella possono accedere a questa procedura. Per creare una procedura protetta, è necessario specificare la parola chiave protected.
protected procedure MyFunction()
begin
// Logic goes here
end;