ローカル プロシージャとグローバル プロシージャの違いを確認する

完了

オブジェクトでプロシージャを作成すると、そのプロシージャは既定でグローバルになり、他のオブジェクトがこのプロシージャにアクセスできるようになります。 他の拡張機能がユーザーの拡張機能に依存している場合は、パブリックになっているプロシージャにアクセスします。

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;