ローカル プロシージャとグローバル プロシージャの違いを確認する
オブジェクトでプロシージャを作成すると、そのプロシージャは既定でグローバルになり、他のオブジェクトがこのプロシージャにアクセスできるようになります。 他の拡張機能がユーザーの拡張機能に依存している場合は、パブリックになっているプロシージャにアクセスします。
procedure MyFunction()
begin
// Logic goes here
end;
または、プロシージャをローカル、内部、またはプロテクトに設定することができます。 ローカルのプロシージャは、同じオブジェクト内からしかアクセスできません。 ローカル プロシージャを作成するには、local キーワードを指定する必要があります。
local procedure MyFunction()
begin
// Logic goes here
end;
プロシージャが内部の場合、同じ拡張機能内からしかアクセスできません。 したがって、同じ拡張機能の他のオブジェクトがこのプロシージャにアクセスできます。 内部プロシージャを作成するには、internal キーワードを指定する必要があります。
internal procedure MyFunction()
begin
// Logic goes here
end;
プロシージャがプロテクトの場合、定義オブジェクトとホスト オブジェクト内からしかアクセスできません。 したがって、テーブル内でプロシージャを作成した場合、テーブルを拡張するテーブル拡張機能は、このプロシージャにアクセスできます。 プロテクト プロシージャを作成するには、protected キーワードを指定する必要があります。
protected procedure MyFunction()
begin
// Logic goes here
end;