结束PLSQL程序

时间:2017-09-15 08:19:14

标签: plsql oracle-apex

我在Oracle APEX中编写了一个PLSQL程序,但我不知道如何结束它,因为我尝试它的每一种方式仍然抱怨。

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

我也试过

     *
     END;
END;

但它似乎不喜欢我结束我的程序的任何方式。我已经结束了程序中的所有内容。

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

您可以在任何地方的PL / SQL块中声明本地过程 - 包括在APEX中。语法如下:

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

例如:

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;

因为过程是在本地声明的,所以只能在声明它的PL / SQL块中使用它。如果您需要一个可以从应用程序或页面中放置的程序调用的程序,则需要在数据库中定义(最好是在程序包中)。

答案 1 :(得分:0)

据我所知,您不能将PL / SQL过程直接放在APEX页面中。对于PL / SQL执行,有APEX进程。如果必须在其他页面上重复使用代码,则将进程复制到每个页面或使用db过程(意味着将过程直接放在数据库中)

使用APEX流程 在页面上创建一个新进程,并选择“PL / SQL代码”作为类型。然后在APEX流程中输入您的代码。

Variable Declarations
*
BEGIN
*
END;

进程只能在同一页面内使用。如果您想在多个其他页面上使用您的代码,您必须将它们复制到此页面。

使用DB-procedure: 如果使用db过程,则必须将其直接添加到oracle数据库。因此,使用您选择的工具连接到数据库。从上面执行您的代码。要在APEX中调用该过程,请使用类似的方法。

begin
    PKG.FzgZuordnen(:APEX_PAGEITEM);
end;

答案 2 :(得分:0)

尝试这种方式:

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

答案 3 :(得分:0)

您可以使用sql developer或sql plus在数据库模式内创建plsql过程

create or replace procedure zgZuordnen(Volt VARCHAR2) IS
 .. variable declaration
begin
    {statament blocks}
end zgZuordnen;

通过APEX前端开发人员选项,您可以使用绑定变量调用该过程