我在Oracle APEX中编写了一个PLSQL程序,但我不知道如何结束它,因为我尝试它的每一种方式仍然抱怨。
DECLARE
PROCEDURE FzgZuordnen(Volt VARCHAR2) IS
Variable Declarations
*
BEGIN
*
END;
FzgZuordnen END;
我也试过
*
END;
END;
但它似乎不喜欢我结束我的程序的任何方式。我已经结束了程序中的所有内容。
感谢您的帮助。
答案 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前端开发人员选项,您可以使用绑定变量调用该过程