SPECIFIC is part of the SQL standard’s routine-handling syntax. When you create a FUNCTION or PROCEDURE you may append a SPECIFIC clause that declares a secondary identifier (the specific name) for that routine. Unlike the routine’s invocation name, the specific name must be unique within the schema and does not participate in overloading resolution. It exists solely so you can later reference that exact routine – even if multiple routines share the same invocation name but differ in parameter lists.Key points:- Supported mainly by standards-compliant systems such as IBM Db2 and some ANSI-mode engines.- Aids in DROP and ALTER statements that otherwise need the full parameter signature to disambiguate an overloaded routine.- Has no impact on how a routine is called from SQL or from client code.- If not supplied, the database engine automatically generates a specific name.- Attempting to reuse a specific name in the same schema raises an error.
specific_name
(identifier) - The unique label assigned after the SPECIFIC keywordSQL:1999
It removes ambiguity when multiple overloaded routines share the same name by giving each one a unique label you can later use in DROP or ALTER statements.
No. Clients still invoke the routine by its normal name. SPECIFIC is strictly a metadata label.
Not directly. You must drop the routine and recreate it with a new SPECIFIC clause or use ALTER FUNCTION ... SPECIFIC where supported.
The database raises an error indicating the specific name already exists in the schema. Choose a different identifier.