我创建了一个存储过程并成功编译,没有任何错误。但是,当我在annoynmous块中调用它时,它会返回错误消息PLS-00201: identifier 'DUE_FOR_RAISE' must be declared
。
什么似乎是错的?程序调用有问题吗?
这是我以前称之为程序:
BEGIN due_for_raise('Austin'); END;
答案 0 :(得分:1)
这是因为你引用了你的程序名称(从不这样做)。你需要用引号和完全调用它来命名程序,所以:
BEGIN
"due_for_raise"('Austin');
END;
如果更容易丢弃旧程序,并在没有引用名称的情况下重新创建它。
引用Database Object Names and Qualifiers上的文档:
Oracle建议不要对数据库对象名称使用带引号的标识符。 SQL * Plus接受这些带引号的标识符,但在使用管理数据库对象的其他工具时它们可能无效。