如何执行oracle存储过程?

问题描述 投票:45回答:4

我正在使用oracle 10g快递版。它对数据库开发人员来说非常好用。但我面临执行存储过程的一些问题。

程序:

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

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

execute temp_proc;

它显示ORA-00900:无效的SQL语句

所以需要帮助

oracle plsql oracle10g ora-00900
4个回答
68
投票

Execute是sql * plus语法..尝试在开始包装你的调用..结束如下:

begin 
    temp_proc;
end;

(尽管Jeffrey说这在APEX中不起作用..但你试图让它在SQLDeveloper中运行..尝试那里的'Run'菜单。)


3
投票

Oracle 10g Express Edition内置了Oracle Application Express(Apex)。您正在其SQL命令窗口中运行它,该窗口不支持SQL * Plus语法。

这没关系,因为(正如你所发现的)BEGIN ... END语法在Apex中起作用。


2
投票

“是”和“as”都是有效的语法。默认情况下禁用输出。尝试一个也能输出的程序......

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

...并在PLSQL块中调用它...

begin
  temp_proc;
end;

...因为SQL是非程序性的。


-1
投票

您是否尝试过这样的语法更正?:

create or replace procedure temp_proc AS
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;
© www.soinside.com 2019 - 2024. All rights reserved.