我是PL / SQL的新手,我试图定义和使用这样的程序:
create or replace procedure f()
is
BEGIN
DBMS_OUTPUT.put_line('Hello world!');
END;
/
BEGIN
f();
END;
/
然而,在调用f()中出现错误信息,并说“对象[用户名] .f无效”
我做错了什么?
答案 0 :(得分:2)
创建程序时,您应该看到类似
的内容Warning: Procedure created with compilation errors.
如果您输入"显示错误"或者在SQL Developer中打开过程并编译过程,您将获得错误列表。如果你这样做,你会看到像
这样的东西SQL> sho err
Errors for PROCEDURE MY_PROC:
LINE/COL ERROR
-------- -----------------------------------------------------------------
1/19 PLS-00103: Encountered the symbol ")" when expecting one of the
following:
<an identifier> <a double-quoted delimited-identifier>
current delete exists prior
这告诉您,create or replace procedure
语句中包含的打开和关闭父项无效。如果过程不带参数,则省略定义中的括号
create or replace procedure f
is
BEGIN
DBMS_OUTPUT.put_line('Hello world!');
END;
应该编译并且应该可以从您的匿名PL / SQL块中调用。