如何执行Oracle存储过程?

18 浏览
0 Comments

如何执行Oracle存储过程?

我正在使用Oracle 10g Express Edition。它为数据库开发人员提供了漂亮的用户界面。但是我在执行存储过程时遇到了一些问题。

存储过程如下:

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;

它成功创建了。但是当我执行:

execute temp_proc;

时,显示ORA-00900: invalid SQL statement

所以在这里需要帮助。

0
0 Comments

问题原因:在Oracle 10g Express Edition中,内置了Oracle Application Express (Apex)。你正在使用它的SQL Commands窗口运行,该窗口不支持SQL*Plus语法。

解决方法:不过,这并不重要,因为(正如你已经发现的)BEGIN...END语法在Apex中是有效的。

所以,要执行一个Oracle存储过程,你可以使用以下语法:

BEGIN
  your_procedure_name(your_parameter);
END;

请注意,你需要替换"your_procedure_name"和"your_parameter"为适当的值。

希望这对你有帮助!

0
0 Comments

在执行Oracle存储过程时,可能会遇到以下问题:无法输出结果。解决方法是使用DBMS_OUTPUT.ENABLE函数启用输出,并在存储过程中使用DBMS_OUTPUT.PUT_LINE函数输出结果。以下是一个示例代码,演示了如何执行带有输出的存储过程:

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.ENABLE(1000000);
  DBMS_OUTPUT.PUT_LINE('Test');
end;

然后,在一个PL/SQL块中调用该存储过程:

begin
  temp_proc;
end;

这是因为在Oracle中,SQL是非过程化的语言,所以需要在PL/SQL块中调用存储过程来执行它。

0
0 Comments

如何执行Oracle存储过程?

在使用Execute命令时,可以尝试用beginend包裹存储过程的调用,例如:

begin

temp_proc;

end;

虽然Jeffrey表示在APEX中这种方式不起作用,但如果你想在SQLDeveloper中运行存储过程,可以尝试使用该工具的“Run”菜单。

0