Identificar diferencias entre procedimientos locales y globales

Completado

Al crear un procedimiento en el objeto, el procedimiento es global de forma predeterminada, lo que significa que otros objetos pueden tener acceso a este. Si otras extensiones dependen de su extensión, tendrán acceso a los procedimientos de acceso que sean públicas.

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

También puede hacer que el procedimiento sea local, interno o protegido. Cuando un procedimiento es local, solo puede tener acceso a él desde el mismo objeto. Para crear un procedimiento local, debe especificar la palabra clave local.

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

Cuando un procedimiento es interno, solo puede tener acceso a ella desde la misma extensión. Por tanto, el resto de objetos de la misma extensión pueden tener acceso a este procedimiento. Para crear un procedimiento interno, debe especificar la palabra clave interno.

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

Cuando un procedimiento está protegido, solo puede tener acceso a él desde el objeto de definición y de host. Por tanto, si crea un procedimiento en una tabla, las extensiones de tabla que extienden su tabla pueden tener acceso a dicho procedimiento. Para crear un procedimiento protegido, debe especificar la palabra clave protegido.

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