2013-10-28 50 views
0

我已经创建了一个存储过程,并且没有任何错误地成功编译它。但是,当我在恼人的块中调用它时,它将返回一条错误消息PLS-00201: identifier 'DUE_FOR_RAISE' must be declared。 什么似乎是错的?程序调用有问题吗? 这是我过去称为过程: BEGIN due_for_raise('Austin'); END;Oracle PL/SQL:使用参数调用存储过程

回答

1

这是因为你引用了你的过程名称(从不这样做)。你需要用引号和完全相同相同的外壳中调用它,你用来命名程序,那么:

BEGIN 
    "due_for_raise"('Austin'); 
END; 

不带引号的名称。如果是比较容易放弃旧的程序,并重新创建它。

要从文件引用上Database Object Names and Qualifiers

Oracle不建议使用带引号的标识符的数据库对象名称。这些带引号的标识符被SQL * Plus接受,但在使用其他管理数据库对象的工具时可能无效。

+0

我从来没有想过这会很重要,因为APEX会自动添加到我创建的每个过程中。无论如何,非常感谢! – Wabbit