我正在使用oracle 10g快递版。它对数据库开发人员来说非常好用。但我面临执行存储过程的一些问题。
程序:
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.PUT_LINE('Test');
end
它创建成功。但是当我执行时:
execute temp_proc;
它显示ORA-00900:无效的SQL语句
所以需要帮助
Execute
是sql * plus语法..尝试在开始包装你的调用..结束如下:
begin
temp_proc;
end;
(尽管Jeffrey说这在APEX中不起作用..但你试图让它在SQLDeveloper中运行..尝试那里的'Run'菜单。)
Oracle 10g Express Edition内置了Oracle Application Express(Apex)。您正在其SQL命令窗口中运行它,该窗口不支持SQL * Plus语法。
这没关系,因为(正如你所发现的)BEGIN ... END语法在Apex中起作用。
“是”和“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是非程序性的。
您是否尝试过这样的语法更正?:
create or replace procedure temp_proc AS
begin
DBMS_OUTPUT.PUT_LINE('Test');
end;