Identificar diferencias entre procedimientos locales y globales
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;