我创建了一个存储过程并成功编译它,没有任何错误。但是,当我在一个匿名块中调用它时,它会返回一条错误消息PLS-00201: identifier 'DUE_FOR_RAISE' must be declared
。似乎有什么问题?程序调用有问题吗?这就是我以前所说的过程:
BEGIN due_for_raise('Austin'); END;
问问题
173 次
1 回答
1
这是因为您引用了您的过程名称(永远不要这样做)。您需要使用引号和与您用来命名该过程的大小写完全相同的大小写来调用它,因此:
BEGIN
"due_for_raise"('Austin');
END;
如果删除旧程序并重新创建它而不带引号会更容易。
引用有关数据库对象名称和限定符的文档:
Oracle 不建议对数据库对象名称使用带引号的标识符。SQL*Plus 接受这些带引号的标识符,但在使用其他管理数据库对象的工具时它们可能无效。
于 2013-10-28T08:13:59.060 回答