Identifier les différences entre les procédures locales et globales

Effectué

Lorsque vous créez une procédure dans votre objet, elle est globale par défaut. Autrement dit, d’autres objets peuvent y accéder. Si d’autres extensions dépendent de la vôtre, elles accèdent à des procédures publiques.

procedure MyFunction()
begin
   // Logic goes here
end;

Vous pouvez également rendre votre procédure locale, interne ou protégée. Lorsqu’une procédure est locale, vous pouvez y accéder uniquement depuis le même objet. Pour créer une procédure locale, vous devez spécifier le mot clé local.

local procedure MyFunction()
begin
   // Logic goes here
end;

Lorsqu’une procédure est interne, vous pouvez y accéder uniquement depuis la même extension. Par conséquent, d’autres objets de la même extension peuvent y accéder. Pour créer une procédure interne, vous devez spécifier le mot clé internal.

internal procedure MyFunction()
begin
   // Logic goes here
end;

Lorsqu’une procédure est protégée, vous pouvez y accéder uniquement depuis l’objet de définition et l’objet hôte. Ainsi, si vous créez une procédure dans une table, les extensions de table qui étendent votre table peuvent accéder à cette procédure. Pour créer une procédure protégée, vous devez spécifier le mot clé protected.

protected procedure MyFunction()
begin
   // Logic goes here
end;