2017-09-15 24 views
0

Oracle APEXでPLSQLプロシージャを作成しましたが、私が試したあらゆる方法でそれを終了する方法はわかりません。PLSQLプロシージャの終了

DECLARE 
PROCEDURE FzgZuordnen(Volt VARCHAR2) IS 
Variable Declarations 
* 
    BEGIN 
    * 
    END; 
FzgZuordnen END; 

私も

 * 
    END; 
END; 

を試してみましたが、しかし、私が私の手順を終了どのような方法を好むようには見えません。私はその手順の中のすべての事を終えました。

ありがとうございました。

+0

私は宣言を削除するときにプロシージャを見つける際に文句を言い、宣言でプロシージャを置き換えます。 –

+0

FYI。すべてのブロックには内部ステートメントが必要です。開始と終了の間に 'NULL;'を追加してみてください – ShoeLace

答えて

0

私の知る限り、PL/SQLプロシージャをAPEXページに直接配置することはできません。 PL/SQL実行には、APEXプロセスがあります。あなたはその後、他のページにあなたのコードを再使用するか、各ページへのプロセスをコピーまたはDBプロシージャを使用している場合はAPEXプロセスを使用して


を(データベースで直接手続きを置く意味する): を作成します。ページ上の新しいプロセスを選択し、タイプとして「PL/SQLコード」を選択します。次に、コードをAPEXプロセスに入力します。

Variable Declarations 
* 
BEGIN 
* 
END; 

プロセスは同じページ内でのみ使用できます。他の複数のページでコードを使用する場合は、このページにコードをコピーする必要があります。

DB-手順を使用して

あなたはデシベルの手順を使用している場合は、Oracleデータベースに直接追加する必要があります。そのため、あなたが選んだツールでデータベースに接続します。上記のコードを実行します。 APEXでプロシージャを呼び出すには、次のようにします。 APEXに含む -

begin 
    PKG.FzgZuordnen(:APEX_PAGEITEM); 
end; 
2

あなたはどこにでもPL/SQLブロック内ローカルプロシージャを宣言することができます。手順はそれだけで、それが宣言されているPL/SQLブロックから使用することができ、ローカルに宣言されているので

DECLARE 
    PROCEDURE raise_error (error_text VARCHAR2) IS 
    BEGIN 
    raise_application_error (-20001, error_text); 
    END FzgZuordnen; 
BEGIN 
    if :p1_value < 0 then 
    raise_error ('Value cannot be negative'); 
    elsif :p1_value > 10 then 
    raise_error ('Value cannot exceed 10'); 
    end if; 
END; 

:たとえば

DECLARE 
    PROCEDURE FzgZuordnen(Volt VARCHAR2) IS 
    -- Variable Declarations 
    BEGIN 
    -- Procedure code 
    END FzgZuordnen; 
BEGIN 
    -- Block PL/SQL that calls the procedure 
END; 

:構文は次のようなものです。アプリケーションやページに配置された多くの人から呼び出すことができるプロシージャが必要な場合は、データベースに(好ましくはパッケージ内に)定義する必要があります。

関連する問題