Reputation: 149
I have created a stored procedure and compiled it successfully without any errors. However, when I call it within an annoynmous block, it returns an error message PLS-00201: identifier 'DUE_FOR_RAISE' must be declared
.
What seems to be wrong? Is there something wrong with the procedure calling?
This is what I used to call the procedure:
BEGIN due_for_raise('Austin'); END;
Upvotes: 0
Views: 290
Reputation: 52843
It's because you've quoted your procedure name (never do this). You need to call it with quotes and exactly the same casing as you used to name the procedure, so:
BEGIN
"due_for_raise"('Austin');
END;
If would be easier to drop your old procedure, and re-create it without a quoted name.
To quote from the documentation on Database Object Names and Qualifiers:
Oracle does not recommend using quoted identifiers for database object names. These quoted identifiers are accepted by SQL*Plus, but they may not be valid when using other tools that manage database objects.
Upvotes: 1